ASP.NET数据访问

ASP.NET数据访问技术 了解ASP.NET,掌握访问技术,更好的实现数据访问 立即下载
ASP.NET中包含了一些数据访问的工具,通过这些工具,你可以更好的设计网站,让你的用户在访问网站的时候,能够更容易的与数据库进行交互。
在数据访问(Data access)中,最主要的也是首先要做的就是应用程序与数据源的连接。下面我们对一些数据访问的方法集中加以讨论。
使用ODBC.NET
ODBC(Open Database Connectivity,开放数据库连接)是一个被广泛接受的数据库访问API(application programming interface,应用程序接口)。它基于来自数据库API领域的X/Open和ISO/IEC调用级接口(CLI,Call-Level Interface)规范,并且使用SQL(Structured Query Language)作为其数据库访问语言。
ODBC被设计具备最大的互用性,也就是说,可以使用相同的代码、通过一个应用程序来访问不同的数据库操作系统(DBMS,database management systems)。数据库应用程序调用ODBC接口中的函数,而这些函数在数据库专用模块中被称为“驱动器”(drivers)。由于驱动器在运行时刻被装载,所以如果用户需要访问新的DBMS的时候,就需要添加一个新的驱动器才行,但是装载之后不需要重新编译和连接应用程序。
ODBC框架由以下四个部分组成:
● 应用程序(Application)。执行处理,调用ODBC函数来提交SQL语句,并且得到结果。
● 驱动器管理器(Driver Manager)。为应用程序装载和卸载驱动器。处理ODBC函数调用或者把它们传递给驱动器。
● 驱动器(Driver)。处理ODBC函数调用,把SQL请求提交到指定的数据源,并且把结果返回给应用程序。如果必要的话,驱动器会修改应用程序的请求,以便该请求从语义上可以被相应的DBMS识别。
● 数据源(Data source)。包括用户想要访问的数据和它对应的操作系统、DBMS、用于访问DBMS的网络平台(如果有的话)。
下图表示上述四个部分之间的关系。
          
                 图4.1 ODBC各组件之间的关系
一旦安装成功,就可以使用一个全新的命名空间(namespace)——System.Data.Odbc。它被添加到全局汇编缓存器(Global Assembly Cache)中,作为.NET框架(.NET framework)的本地部分发挥作用。
System.Data.Odbc命名空间中包括:OdbcConnection, OdbcDataAdapter, OdbcCommand, OdbcDataReader, OdbcParameter, OdbcTransaction ,OdbcCommandBuilder等类。
下面我们开始介绍如何在数据访问中使用ODBC。
使用ODBC DSN(Data Source Name,数据源名)需要如下两步:
● 创建DSN。
创建DSN需要使用“ODBC数据源管理器”(ODBC Data Source Administrator)。你可以在“控制面板”(Control Panel)或“管理工具”(Administrative Tools)中找到它。界面如下图所示。
           
                  图4.2 ODBC数据源设置界面
在使用ASP.NET的时候,要确保你创建的是“系统DSN”(SYSTEM DSN),而不是“用户DSN”(USER DSN)。
在上述界面中,可以添加( )、删除( )和修改( )DSN。点击Add按钮,在下图的界面中选择一个合适的“驱动器”(driver)。
           
                 图4.3 从驱动器列表中选择合适的驱动器
选中驱动器之后,点击“完成”( )按钮,开始设置“数据源”的具体属性。界面如图4.4所示。
           
                   图4.4 设置数据源属性
在图中输入DSN(Data Source Name)和“描述”(Description)之后,选择( )、创建( )、修复( )或压缩( )所选的数据库。
设定好之后,点击“确定”( )完成DSN的设置。结果如图4.5所示。
           
                       图4.5 DSN设置完成
注:由于在图4.3的界面中,我们选择了用于ACCESS数据库的驱动器,所以在图4.4的界面中就只能针对ACCESS数据库进行相关设置。如果读者想要使用其他数据库,可以在图4.3的界面中选择相应的驱动器。
设置好了DSN,接下来就可以对数据源进行访问了。
● 使用连接语句进行连接。
oConn.Open "DSN=goodDay;" & _
          "Uid=;" & _
          "Pwd=;

使用.NET Jet Driver
我们通常所说的Jet Driver,又叫桌面ODBC数据库驱动器(Desktop Database Drivers for ODBC)。在Jet数据库引擎(Jet database engine)3.5版本中,引入了Internet同步化(Internet synchronization)功能,用来满足在国际互联网(Internet)或内部互联网(intranet)上使用重复数据库中数据的需要。随着Jet数据库引擎4.0版本的发布,很多新的特性被引入到了Internet同步化(Internet synchronization)中,其中主要有:
● 支持HTTP1.1协议,该协议去除了FTP对于同步化的依赖。
● 减少了传输时间。
● 为Internet复制使用的新的、叫做“匿名者(anonymous)”的复制品类型。
● 附加的、多个用于控制同步化超时的注册码(registry keys)。
Internet同步化(Internet synchronization)也可用于局域网(LAN,local area network,有时候也叫intranet),进行标准的间接同步化(indirect synchronization)。Internet同步化(Internet synchronization)不同于间接同步化,不需要在客户端装备同步化装置以实现对数据库的同步化操作。
要在Internet上实现同步化,客户端计算机必须建立一个到Internet或intranet服务器上的HTTP连接。根据客户端计算机与服务器间的配置情况,建立与服务器的连接将会在客户端显示一个登录对话框。此时,只有当客户端计算机输入了正确的用户名和密码之后,同步化才会启动。一旦连接成功,客户端计算机就会创建一个消息文件,其中记录了上次同步化后数据库“复制品”(replica)中发生的变化,并且将该消息文件上传至Internet或intranet服务器上的“穿梭仓”(drop box)中。
Internet同步化把这些变化应用到了基本的“复制品”(base replica)中,除非你使用Visual Basic?的应用程序代码指定了一个不同于基本“复制品”的其它“复制品”。
这些变化被应用到基本的“复制品”(base replica)中后,Internet同步化就会创建一个消息文件,包含来自于基本“复制品”(或程序代码中指定的“复制品”)的数据库变化,并且把该消息文件上传至Internet或intranet服务器上的“穿梭仓”(drop box)中。Internet服务器把消息文件的名称和位置送回给客户端计算机,而客户端计算机会把消息文件中的内容应用到客户端数据库“复制品”中。
如4.2中提到的,ODBC是一个使用SQL (Structured Query Language)作为数据库访问语言的API。通过应用程序中的一段同样的ODBC源代码,你就可以访问很多DBMS(database management system)。使用“Microsoft ODBC桌面数据库驱动器”(Microsoft ODBC Desktop Database Driver),在可以使用ODBC的应用程序中,用户可以通过ODBC接口对桌面数据库完成打开、查询和修改等操作。
“Microsoft ODBC桌面数据库驱动器”是一套基于Microsoft Jet的ODBC驱动器(有关ODBC驱动器的知识请参见4.2)。需要说明的是,在“Microsoft ODBC桌面数据库驱动器”2.0版中包括16位和32位的驱动器,3.0及以后的版本中仅包括运行于Windows 95及以后版本、Windows NT Workstation 或 Server version 4.0、Windows 2000 Professional、Windows 2000 Server等操作系统上的32位驱动器。这些驱动器提供对下列数据源的访问:
● Microsoft Access
● dBASE
● Microsoft Excel
● Paradox
● 文本(Text )
对其他数据源的访问,如Lotus 1-2-3, Microsoft Exchange和HTML,需要安装ISAM (IISAM)驱动器。

通过Microsoft Jet 的OLE 数据库提供者(OLE DB Provider for Microsoft Jet),ADO可以访问Microsoft Jet数据库。
● 连接字符串参数(Connection String Parameters)
要连接到相应的提供者(Provider),需要将ConnectionString 的Provider参数值设为:
Microsoft.Jet.OLEDB.4.0
● 典型的连接字符串
针对OLE 数据库提供者的典型连接字符串如下:
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=databaseName;
User ID=userName;Password=userPassword;"
这个字符串包括以下关键字(keywords):


表4.1 OLE 数据库提供者典型连接字符串关键字说明

除了使用OLE 数据库提供者连接数据库之外,还可以使用ODBC驱动器访问数据库。这里主要针对与数据库的连接举例说明。(一旦实现了与数据源的连接,余下的工作——如数据源中数据的查询、修改等操作可参见“第三章 ASP.NET数据库访问-ADO.NET”中的内容。)
● 使用ODBC驱动器建立与AS/400数据源的连接:
oConn.Open "Driver={Client Access ODBC Driver (32-bit)};" & _
          "System=myAS400;" & _
          "Uid=myUsername;" & _
          "Pwd=myPassword;"
● 使用ODBC驱动器建立与Access数据源的连接:
oConn.Open "Driver={Microsoft Access Driver (*.mdb)};" & _
          "Dbq=c:/somepath/mydb.mdb;" & _
          "Uid=Admin;" & _
          "Pwd=;"
如果是系统数据库,那么可以这样做:
oConn.Open "Driver={Microsoft Access Driver (*.mdb)};" & _
          "Dbq=c:/somepath/mydb.mdb;" & _
          "SystemDB=c:/somepath/mydb.mdw;", _
          "admin", ""
如果数据源是网络数据库:
oConn.Open "Driver={Microsoft Access Driver (*.mdb)};" & _
          "Dbq=//myServer/myShare/myPath/myDb.mdb;"

● 使用ODBC驱动器建立与dBASE数据源的连接:
oConn.Open "Driver={Microsoft dBASE Driver (*.dbf)};" & _
         "DriverID=277;" & _
         "Dbq=c:/somepath;"
注意:在SQL语句中指定所要访问的数据表名。例如(使用VB语句):
     oRs.Open "Select * From user.dbf", oConn, , ,adCmdText
注意:MDAC(Microsoft Data Access Components,Microsoft数据访问组件) 2.1 (或更新的版本)需要BDE (Borland Database Engine,Borland 数据库引擎)来升级dBase DBF文件.
● 使用ODBC驱动器建立与Excel数据源的连接:
oConn.Open "Driver={Microsoft Excel Driver (*.xls)};" & _
          "DriverId=790;" & _
          "Dbq=c:/somepath/mySpreadsheet.xls;" & _
          "DefaultDir=c:/somepath;"
● 使用ODBC驱动器建立与MySQL(通过MyODBC)数据源的连接:
连接本地数据库
oConn.Open "Driver={mySQL};" & _
          "Server=MyServerName;" & _
          "Option=16834;" & _
          "Database=mydb;"
连接远程数据库
oConn.Open "Driver={mySQL};" & _
          "Server=db1.database.com;" & _
          "Port=3306;" & _
          "Option=131072;" & _
          "Stmt=;" & _
          "Database=mydb;" & _
          "Uid=myUsername;" & _
          "Pwd=myPassword;"

● 使用ODBC驱动器建立与Oracle数据源的连接:
使用来自Microsoft公司的当前版本Oracle ODBC驱动器
oConn.Open "Driver={Microsoft ODBC for Oracle};" & _
          "Server=OracleServer.world;" & _
          "Uid=myUsername;" & _
          "Pwd=myPassword;"
使用来自Microsoft公司的旧版本Oracle ODBC驱动器
oConn.Open "Driver={Microsoft ODBC Driver for Oracle};" & _
          "ConnectString=OracleServer.world;" & _
          "Uid=myUsername;" & _
          "Pwd=myPassword;"

● 使用ODBC驱动器建立与Paradox数据源的连接:
oConn.Open "Driver={Microsoft Paradox Driver (*.db)};" & _
          "DriverID=538;" & _
          "Fil=Paradox 5.X;" & _
          "DefaultDir=c:/dbpath/;" & _
          "Dbq=c:/dbpath/;" & _
          "CollatingSequence=ASCII;"
注意: MDAC(Microsoft Data Access Components,Microsoft数据访问组件) 2.1 (或更新的版本)需要BDE (Borland Database Engine,Borland 数据库引擎)来升级Paradox ISAM fDBF文件.
● 使用ODBC驱动器建立与SQL Server数据源的连接:
使用标准安全性:
oConn.Open "Driver={SQL Server};" & _
          "Server=MyServerName;" & _
         "Database=myDatabaseName;" & _
         "Uid=myUsername;" & _
          "Pwd=myPassword;"
使用信任的连接安全性(Trusted Connection security):
oConn.Open "Driver={SQL Server};" & _
          "Server=MyServerName;" & _
          "Database=myDatabaseName;" & _
          "Uid=;" & _
          "Pwd=;"

oConn.Open "Driver={SQL Server};" & _
          "Server=MyServerName;" & _
          "Database=myDatabaseName;" & _
          "Trusted_Connection=yes;"
提示输入用户名和密码:
oConn.Properties("Prompt") = adPromptAlways
oConn.Open "Driver={SQL Server};" & _
          "Server=MyServerName;" & _
          "DataBase=myDatabaseName;"
● 使用ODBC驱动器建立与Sybase数据源的连接:
使用Sybase System 11 ODBC驱动器:
oConn.Open "Driver={SYBASE SYSTEM 11};" & _
          "Srvr=myServerName;" & _
         "Uid=myUsername;" & _
          "Pwd=myPassword;"
使用Intersolv 3.10 Sybase ODBC驱动器:
oConn.Open "Driver={INTERSOLV 3.10 32-BIT Sybase};" & _
          "Srvr=myServerName;" & _
         "Uid=myUsername;" & _
          "Pwd=myPassword;"
● 使用ODBC驱动器建立与Sybase SQL Anywhere数据源的连接:
oConn.Open "ODBC; Driver=Sybase SQL Anywhere 5.0;" & _
          "DefaultDir=c:/dbpath/;" & _
          "Dbf=c:/sqlany50/mydb.db;" & _
         "Uid=myUsername;" & _
          "Pwd=myPassword;"
          "Dsn="""";"
注意:在连接字符串中一定要保留DSN标签,即使是个空字符串(如代码中所示)。因为它是必备的!如果不这样设置,将会导致-7778错误。
● 使用ODBC驱动器建立与Teradata数据源的连接:
oConn.Open "Provider=Teradata;" & _
          "DBCName=MyDbcName;" & _
          "Database=MyDatabaseName;" & _
          "Uid=myUsername;" & _
          "Pwd=myPassword;"
● 使用ODBC驱动器建立与Teradata数据源的连接:
oConn.Open "Driver={Microsoft Text Driver (*.txt; *.csv)};" & _
          "Dbq=c:/somepath/;" & _
          "Extensions=asc,csv,tab,txt;" & _
          "Persist Security Info=False"
注意:在SQL语句中指定所要访问的数据表名。例如(使用VB语句):
oRs.Open "Select * From customer.csv", _
        oConn, adOpenStatic, adLockReadOnly, adCmdText
● 使用ODBC驱动器建立与Teradata数据源的连接:
使用数据库容器:
oConn.Open "Driver={Microsoft Visual FoxPro Driver};" & _
          "SourceType=DBC;" & _
          "SourceDB=c:/somepath/mySourceDb.dbc;" & _
          "Exclusive=No;"
不使用数据库容器(使用自由表):
oConn.Open "Driver={Microsoft Visual FoxPro Driver};" & _
          "SourceType=DBF;" & _
          "SourceDB=c:/somepath/mySourceDbFolder;" & _
          "Exclusive=No;"
访问mysql
要访问mysql数据库,需要以下组件:
● mysql-3.23.32-win(这个是最新版的,用于创建mysql数据库)
● myodbc-2.50.36-dll(这个是最重要的,MYSQL ODBC的驱动程序,可以到www.mysql.com下载)
对mysql 数据库的访问,需要如下步骤:
● 安装MYSQL ODBD的驱动程序
将下载的myodbd-2.50.46-dll文件复制到windows/system目录下(windows2000是winnt/system32)
然后建立一新文件,扩展名为reg(注册表文件),将以下内容复制到该文件中。
REGEDIT4
[HKEY_LOCAL_MACHINE/SOFTWARE/ODBC/ODBCINST.INI/myodbc driver]
"UsageCount"=dword:00000002
"Driver"="C://WINNT//System//myodbc.dll"
"Setup"="C://WINNT//System//myodbc.dll"
"SQLLevel"="1"
"FileUsage"="0"
"DriverODBCVer"="02.50"
"ConnectFunctions"="YYY"
"APILevel"="1"
"CpTimeout"="120"
[HKEY_LOCAL_MACHINE/SOFTWARE/ODBC/ODBCINST.INI/ODBC Drivers]
"myodbc driver"="installed"
保存后双击该文件,将上面代码注册到WINDOWS注册表中。
注意:上述内容适合在windows2000系列系统中使用。如果安装在windows98中,则Driver和Setup主键的值要做相应改变,如下:
"Driver"="C://WINDOWS//System//myodbc.dll"
"Setup"="C://WINDOWS//System//myodbc.dll"
  如果成功,在ODBC数据源的驱动程序里将看到myodbc driver这一项!
● 建立连接
连接MYSQL数据库时,可以通过4.2文中说到的ODBC DSN或者4.3中说到的ODBC驱动器(详细内容见上文)。
访问Oracle
通过使用Oracle的Microsoft? ODBC驱动器(关于ODBC驱动器的知识请参见4.2),可以使应用程序得以连接到Oracle数据库。Oracle的ODBC驱动器支持对PL/SQL包、XA/DTC集成的访问。
注意:关于PL/SQL包和XA/DTC集成的概念请参见相关的Oracle参考书。
Oracle RDBMS(关系数据库管理系统)是一个多用户的关系型数据库管理系统,可以运行在多种工作站和微型计算机操作系统上。使用Microsoft Windows系列操作系统的IBM兼容机可以通过网络与Oracle数据库服务器进行交互。支持这种交互的网络包括:Microsoft LAN管理器、NetWare、VINES、DECnet以及其他支持TCP/IP协议的网络。
Oracle的ODBC驱动器使得应用程序可以通过ODBC接口对Oracle数据库进行数据访问。驱动器可以访问本地的Oracle数据库,或者使用SQL*Net通过网络与远程的数据库进行交互。下图(图4.6)展示了驱动器的结构:
                  
          图4.6 Oracle的ODBC驱动器应用结构示意图
要访问Oracle数据,需要安装下列组件:
● Oracle的ODBC驱动器
● Oracle RDBMS数据库
● Oracle客户端软件

对于远程连接而言,需要:
● 一个网络,上面连有运行着ODBC驱动器的计算机,以及运行着Oracle数据库的计算机。
● 该网络必须支持SQL*Net连接。

对Oracle数据库的连接,可以采用如下几种方式:
● 使用ODBC DSN。
详细配置情况参见4.2中的叙述。需要注意的是,选择“Microsoft ODBC for Oracle”驱动器,如下图(图4.7)所示。设定DSN为“goodDay“。
                 
                         图4.7 通过ODBC数据源访问Oracle数据库
然后使用如下语句建立连接。
oConn.Open "DSN=goodDay;" & _
          "Uid=;" & _
          "Pwd=;


● 使用ODBC驱动器连接Oracle数据库
具体的连接字符串如下:
oConn.Open "Driver={Microsoft ODBC for Oracle};" & _
          "Server=OracleServer.world;" & _
          "Uid=myUsername;" & _
          "Pwd=myPassword;"
● 使用Oracle的OLE数据库提供者(OLE DB Provider)连接Oracle数据库
来自Microsoft公司的OLE数据库提供者
oConn.Open "Provider=msdaora;" & _
          "Data Source=MyOracleDB;" & _
          "User Id=myUsername;" & _
          "Password=myPassword;"
来自Oracle公司的OLE数据库提供者
oConn.Open "Provider=OraOLEDB.Oracle;" & _
          "Data Source=MyOracleDB;" & _
          "User Id=myUsername;" & _
          "Password=myPassword;"
● 通过“信任的连接”(Trusted Connection)连接Oracle数据库
oConn.Open "Provider=OraOLEDB.Oracle;" & _
          "Data Source=MyOracleDB;" & _
          "User Id=/;" & _
          "Password=;"

oConn.Open "Provider=OraOLEDB.Oracle;" & _
          "Data Source=MyOracleDB;" & _
          "OSAuthent=1;" 
注意:这里的“Data Source” 必须与使用中设定的Net8名称保持一直。举例来说,对于本地命名而言,它应该是tnsnames.ora文件中的别名;对于Oracle命名,它应该是Net8服务的名称。
访问Excel
Excel是Microsoft公司的Office套件中的一种软件,他主要用来处理电子表格。Excel以界面友好、处理数据迅速等优点获得广大办公人员的欢迎。所以很多文档就以Excel的形式保存了下来。对于程序设计人员,在程序设计中,我们往往要访问Excel文件来获得数据。但由于Excel文件不是标准数据库,所以用程序语言来访问它就比较困难。
难归难,因为我们有了ASP.NET,也就没什么难的了!下面介绍怎么做。
要访问Excel ,需要下列组件:
● .Net Framework SDK
● Microsoft Access Data Component 2.6(MADC2.6)
当然了,操作系统最好是Windows 2000系列或更新版本。
配置好环境之后,使用如下代码,我们就可以不使用ODBC建立与Excel文件的连接,并获取其中数据。(程序使用VB语言编写)
Dim myOleDbConnection As OleDbConnection = New
   OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" & _
   "Data Source=c:/test.xls;" & _
   "Extended Properties=""Excel 8.0;""")
Dim myOleDbCommand As OleDbCommand = New OleDbCommand("SELECT *
   FROM [Sheet1$]",myOleDbConnection) '如果你想读出Sheet2的内容
   ,把Sheet1$改成Sheet2$即可
Dim myData As OledbDataAdapter= New
   OledbDataAdapter(myOleDbCommand)
说明:
● 程序中假定我们要访问的文件路径为:c:/test.xls。如果要访问其他位置的Excel文件,只需要做相应改动就可以。
● 我们需要引入System.Data.Oledb命名空间,才可以完成上述操作。
● 在System.Data.Oledb命名空间中,OleDbConnection对象主要是提供连接方式。 OleDbCommand对象提供对目标的具体操作方法。OledbDataAdapter对象是对对象进行不同操作后的返回数据集。
上文中对Excel文件的访问做了一个比较全面的描述,下面我们专门针对与Excel文件的连接加以说明。
可以通过如下方式实现与Excel文件建立连接。
● 使用针对Excel的ODBC驱动器
oConn.Open "Driver={Microsoft Excel Driver (*.xls)};" & _
          "DriverId=790;" & _
          "Dbq=c:/somepath/mySpreadsheet.xls;" & _
          "DefaultDir=c:/somepath;"
● 使用OLE DB Provider for Microsoft Jet
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
          "Data Source=c:/somepath/myExcelSpreadsheet.xls;" & _
          "Extended Properties=""Excel 8.0;HDR=Yes;"";"
说明:其中Data Source指定Excel文件的完整路径,Extended Properties指定一些附加属性,如Excel版本,和HDR值。其中,HDR=Yes表示在表格的区域内存在一个标题行(通常为第一行),所以OLE DB Provider就不会选择第一行的内容。如果HDR=No,OLE DB Provider就会把全部所选的内容填充至记录集(recordset)中。
● 使用ODBC数据源
首先创建ODBC DSN(具体步骤和方法参见4.2)。数据源驱动器选择“Microsoft Excel Driver“(如图4.8所示)。设定DSN为“goodDay“。
                
                      图4.8 创建针对Excel文件的ODBC数据源
然后使用如下语句建立连接。
oConn.Open "DSN=goodDay;" & _
          "Uid=;" & _
          "Pwd=;

作为一个补充内容,下面一段用VB.NET实现的类可以将DataSet中的数据导出至Excel文件中。
Imports System
Imports System.Text
Namespace toExcel
'功能:将asp.net中DataGrid导出至Excel文件中。
'Mountains改进:1、支持中文 2、隐藏列不显示
Public Class DataGridToCSV
Public Function GenerateFile(ByRef Page As System.Web.UI.Page, ByVal MyDataGrid As System.Web.UI.WebControls.DataGrid, ByVal FileName As String) As String
Dim resp As HttpResponse
Dim colCount As Integer = MyDataGrid.Columns.Count - 1
resp = Page.Response
resp.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312") '解决中文乱码之关键
'resp.Charset = "utf-8"
'resp.AddFileDependency(FileName)
'resp.ContentType = "Text/HTML"
'resp.AppendHeader("Content-Type", "text/html; charset=gb2312")
resp.AppendHeader("Content-Disposition", "attachment;filename=" + FileName) '此行代码可将文件做成下载文件
Dim colHeaders As String = ""
Dim strItems As StringBuilder = New StringBuilder()
Dim myCol As DataGridColumn
Dim i As Integer
For i = 0 To colCount
myCol = MyDataGrid.Columns(i)
If myCol.Visible = True Then
colHeaders = colHeaders & myCol.HeaderText.ToString & ","
End If
Next
If colHeaders.Length > 0 Then
colHeaders = colHeaders.Substring(0, colHeaders.LastIndexOf(","))
End If
colHeaders = colHeaders & Chr(13) & Chr(10)
resp.Write(colHeaders)
Dim colRow As String
Dim item As DataGridItem
For Each item In MyDataGrid.Items
resp.Write(FormatExportRow(colCount, item, MyDataGrid))
Next item
resp.End()
End Function

Private Function FormatExportRow(ByVal colCount As Integer, ByVal Item As DataGridItem, ByVal MyDataGrid As System.Web.UI.WebControls.DataGrid) As String
Dim strItem As String
Dim i As Integer
For i = 0 To colCount
If MyDataGrid.Columns(i).Visible = True Then
If Item.Cells(i).Text Is System.DBNull.Value Then
Item.Cells(i).Text = ""
End If
If i = colCount Then
strItem += Item.Cells(i).Text.ToString & Chr(13) & Chr(10)
Else
strItem += Item.Cells(i).Text.ToString & ","
End If
End If
Next
strItem = Replace(strItem, " ", " ")
Return strItem
End Function

End Class
End Namespace

访问Txt文件
由于文本文件(.txt)是一种比较基本的文件类型,因此对这种文件的访问方法也就比较多,下面针对几种比较常用的方法加以叙述。
● 使用ODBC数据源。
首先创建ODBC DSN(具体步骤和方法参见4.2)。数据源驱动器选择“Microsoft Text Driver“(如图4.9所示)。设定DSN为“goodDay“。
                        
                         图4.9 创建针对文本文件的ODBC数据源
然后使用如下语句建立连接。
oConn.Open "DSN=goodDay;" & _
          "Uid=;" & _
          "Pwd=;
● 使用针对文本文件的ODBC驱动器
oConn.Open "Driver={Microsoft Text Driver (*.txt; *.csv)};" & _
          "Dbq=c:/somepath/;" & _
          "Extensions=asc,csv,tab,txt;" & _
          "Persist Security Info=False"
注意:在SQL语句中指定文件名。
● 使用OLE DB Provider for Microsoft Jet
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
          "Data Source=c:/somepath/;" & _
          "Extended Properties=""text;HDR=Yes;FMT=Delimited;"";"
' 然后从实际的文件中查询数据
oRs.Open "Select * From MyTextFile.txt", oConn, adOpenStatic, adLockReadOnly, adCmdText
● 使用System.IO名称空间
创建一个文本文件(c:/goodDay.txt)并写入一段文本。
"声明流书写对象
Dim strwriterobj As StreamWriter
" 创建文本文件,分配textfile对象
strwriterobj= File.CreateText("c:/goodDay.txt" )
" 写入内容
strwriterobj.WriteLine( "Welcome to wonderfull world of ASP.NET Programming" ) "
完成操作,关闭流对象
strwriterobj.Close
从刚才创建的文件中读取文本。
" 创建流读取对象
Dim streamreaderobj As StreamReader
" 声明变量,以存放从文件中读取的内容
Dim filecont As String
" 打开文本文件,分配给流读取对象
streamreaderobj = File.OpenText( " c:/goodDay.txt " )
" 逐行读取文件内容
Do
filecont = streamreaderobj.ReadLine()
Response.Write( filecont & "<br>" )
Loop Until filecont = ""
" 完成读取操作后,关闭流读取对象
streamreaderobj.Close
删除文件
File.Delete("c:aspnet.txt" )
小结
在这一章里,我们比较深入的了解了ASP.NET中对一些常用数据源的访问方法,主要是针对不同数据源的连接进行了比较详细的描述。但由于篇幅所限,很多内容都只能浅尝辄止,如果读者想知道更多的内容,请参见Microsoft Visual Studio.NET中的Microsoft Visual Studio.NET documentation,其中对ASP.NET的数据访问有很详细而且很专业的描述。
至于本章中的程序代码,都是经过严格调试的代码,使用VB.NET编写而成。读者如果想要使用其他.NET语言,如C#等,可以参考一下Microsoft Visual Studio.NET中的联机帮助系统,将相关的代码进行相应的替换即可。

ASP.NET网站统计分析 先附加SQLServer2000数据库,然后再配置IIS,运行“Default.aspx”文件,进入程序主界面。本程序分别按时段、回访率、地区及客户端访问人数来对网站进行统计分析。 立即下载

相关推荐

效果很好的asp.net数据库访问模型(优化,封装一体化).

效果很好的asp.net数据库访问模型(优化,封装一体化).

ADO.NET常用对象

本文总结了ADO.NET常用的数据库操作对象的使用和代码实例。 Connection对象   Connection对象也称为数据库连接对象,Connection对象的功能是负责对数据源的连接。所有Connection对象的基类都是DbConnection类。   Connection对象有两个重要属性:     (1)ConnectionString:表示用于打开 SQL Server 数据库...

weixin_33947521的博客 157

浅谈ASPASPNET)中数据库连接方法

动态网站建设中的核心技术是数据库技术,掌握数据库连接方法是掌握数据库操作的重要内容。基于ASPASPNET技术的WEB设计方法是目前动态网站建设普遍采用的方法。本文结合网站建设教学实践,通过示例分类介绍了ASPASPNET中常用数据库连接方法

数据库连接问题摘要!

--sql server 2000<br />SQL code 如何打开1433端口? 本地连接--〉属性--〉TCP/IP属性--〉高级--〉选项--〉TCP/IP 筛选属性 然后自己添加就可以了。 <br /><br />--sql server 2005<br />SQL code 如何打开sql server 2005 的1433端口 配置工具-->Sql Server Configuration Manager-->MSSQLSERVER的协议 看看TCP/IP协议是否启动,如果启动,右键菜单点"

风云爱飞 1939

ASP.NET MVC】数据库访问(5)

以上是官话,个人理解:1、解决问题:数据库的访问2、如何解决:数据库由表、记录 组成 -》把表映射成面向对象的类,记录则是对象!3、两个方面:解决数据描述(所谓的POJO或者实体类)和数据CURD操作;

yixiaobo2001的博客 908

ASP.NET连接数据库(SQL Server)的操作

/实例化DataAdapter对象。//这里就是我们定义数据库的字段constr。//创建数据库连接实例化对象。// 实例化DataSet类型的对象ds。//将该数据显示在GridView1控件上。//创建数据库连接字段。conStr是字段名字,后面连接需要,localhost是本地地址的意思,s是数据库中的表名。3.选中shujuku练习右击,选择添加,然后在选择Web窗体。

healerhong的博客 9576

体验ASP.NET 2.0 中的数据访问控件

简介   数据访问一直是开发 Web 应用程序的一个关键问题。几乎每个商业应用程序都需要数据驱动的 Web 页面。由于数据访问如此普遍,开发人员不断地为简单的数据库任务重新生成复杂的代码就显得毫无意义了。开发人员需要从格式各异的不同数据源中快速访问数据。幸运的是,ASP.NET 2.0 中新增的数据访问控件和 ADO.NET 2.0 解决了这一问题。  对于传统的 ASPASP.NET 1.

海雅 海的雅致 1882

Asp.net mvc 数据访问

理解了一些概念,本节开始尝试创建属于自己的数据访问层,说道数据访问层那必须有数据库咯(数据集合也算,此处以数据库为例),没有数据库就没有数据访问层。 1、先创建属于自己的数据库       打开已经安装好的SQL Server 2005数据库引擎,输入用户名和密码后连接并创建数据库“SchoolERPDB”:    2、创建连接字符串(ConnectionString)       和W

米奇老鼠 7208

ASP.NET数据访问数据库集成

ADO.NET.NET Framework中用于数据访问的核心技术。它提供了一组类和API,用于连接和操作各种数据源,如关系型数据库、XML和Web服务等。ADO.NET使用一种灵活的、基于组件的模型来处理数据,提供了高性能和可扩展的数据访问解决方案。在本节中,我们深入探讨了ASP.NET数据访问数据库集成。我们了解了ADO.NET作为.NET Framework中的核心数据访问技术,并讨论了数据库连接、数据库命令以及数据集和数据表的概念。

听风的声音 1463

ASP.NET 2.0 中的数据访问

Jayesh Patel、Bryan Acker、Robert McGovernInfusion Development 适用于:Microsoft ASP.NET 2.0Microsoft ADO.NET 2.0Microsoft Visual Studio 2005 摘要: ASP.NET 2.0 通过增加一些支持数据的控件,从而减少了执行普通的数据访问任务所需的代码数量。本...

328

ASP.NET Core 入门教程 8、ASP.NET Core + Entity Framework Core 数据访问入门

ASP.NET Core 入门教程 8、ASP.NET Core + Entity Framework Core 数据访问入门 原文:ASP.NET Core 入门教程 8、ASP.NET Core + Entity Framework Core 数据访问入门一、前言 1、本教程主要内容 ASP.NET Core MVC 集成 EF C...

weixin_30655569的博客 181

ASP.NET Core 项目中的数据访问实践指南

ASP.NET Core 项目中的数据访问实践指南 前言 在现代Web应用开发中,数据访问层是连接业务逻辑与持久化存储的关键桥梁。ASP.NET Core 提供了灵活的数据访问方案选择,其中 Entity Framework Core (EF Core) 作为官方推荐的ORM框架,能够显著提升开发效率。本文将深入探讨如何在ASP.NET Core项目中优雅地实现数据访问。 一、EF Core 基础...

gitblog_00462的博客 399

ASP.NET——数据访问指导

微软已经发布了适用于ASP.NET 4.5的数据访问指导。大部分变更都与ASP.NET 4.5的新功能有关,例如在Web Form(窗体)、及新的ASP.NET Web API方面的变更。 一些出自该指导的注意事项—— 要尽可能与ASP.NET Web Form(窗体)及MVC一起使用ORM,而不要直接(通过Database helper)在ASP.NET Web Page(网页)中使用ADO.N...

weixin_34253539的博客 161

Asp.net中打造通用数据访问类(c#)

Asp.net中打造通用数据访问类(c#)     刚刚写的,可能里面会有漏洞,望指正.     ASPNET开发中, 业务实体需要通过数据访问层与数据库交互,因此,你必须为每个业务实体类编写相对应的数据访问层代码。以下代码解决了这个问题: 所有的业务实体只要派生自一个指定的类(这里是SwContent类),那么只须定义他与数据库相对应的字段属性,它所继承的Select(),Insert(),U

徜徉在微软的陷阱 931

ASP.NET 数据访问

Web 应用程序通常访问用于存储和检索动态数据的数据源。可以通过编写代码来使用 System.Data 命名空间(通常称为 ADO.NET)和 System.Xml 命名空间中的类访问数据。此方法在 ASP.NET 的以前版本中很常见。 但是,ASP.NET 也允许您以声明的方式执行数据绑定。在包括如下方案的大多数常见数据方案中,此方法根本不需要任何代码: 选择和显示数据...

weixin_30784945的博客 179
上一篇: 从C#中访问DHTML DOM对象
下一篇: .NET中各种数据库连接大全
derny
博客等级 码龄23年 16粉丝 189原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值