1.引言
随着Microsoft.NET面向网络的新一代开发平台的诞生,给广大编程人员提供了一个全新的开发环境。笔者就自己在运用ADO.NET进行数据库编程中遇到的问题,与大家探讨一下数据操作的关键技术、步骤与常见的错误。对.NET数据库编程人员也许有一定的参考价值,避免类似错误的发生。
笔者在此主要就VisualBase.NET语法对SQL Server数据库进行探讨,但不对数据库本身结构与如何存储进行讨论。仅就.NET语言编程对上述数据库如何操作进行探讨。
2.数据库的连接
在ADO.NET中,对数据库进行操作前必须对该数据库进行连接。ADO.NET的数据提供者有:SQL Server.Net数据提供者只对SQL Server7.0及更高版SQL Server数据库进行高度优化连接;另一种似乎万能的数据提供者是OLE DB.NET,能处理所有与OLE DB兼容的数据源,甚至对于非关系型数据库如:Excel电子表格,以及Oracle、DB2这样的企业级关系型数据库。第三数据提供者是ODBC.NET,必源首先建立DSN,但使用不多。
2.1运用SQL Server.Net数据提供者
=首先导入命名空间:Imsports namespace system.Data.SqlClient
=创建Connection对象:
SQL Server 提供两种身份验证模式来保护对服务器访问的安全:Windows 身份验证模式和混合模式。
Windows 身份验证模式:
dim strCn as string= "server=SqlServerName;database=DataBaseName;integrated security=SSP"
Dim mySqlConnection as new SqlConnection(strCn)
在混合模式下:
dim strCn as string= "server= SqlServerName;database= DataBaseName;uid=sa;pwd=sa"
Dim mySqlConnection as new SqlConnection(strCn)
用完后务必关闭SqlConnection对象,调用SqlConnection的Close或Dispose方法。这两种连接形式在不同的NET编程书籍并未合并一起进行说明,对于.Net程序员新手也许有一定困惑。对于"SqlServerName",若SqlServer服务器是本机,可以写作"localhost";若SqlServer服务器不是本机,最好用要连接SqlServer服务器的IP地址。
2.2运用OLE DB.NET数据提供者: =首先导入命名空间:
Imsports namespace system.Datat
Imsports namespace system.Datat.OleDb
=创建Connection对象:
<连接Access数据库:
Dim strCn as string ="provider=Microsoft.Jet.OLEDB.4.0;data " &" source=c:DataSourceNorthwind.mdb";
Dim myoleDbConnection As New OleDb.OleDbConnection(strCn)
<连接SQL Server数据库:
Dim strCn As Sting="Provider=SQLOLEDB;Persist Security Info=False;Data Source= SqlServerName;Initial Catalog= DataBaseName;User ID=sa;Password=sa;"
Dim myoleDbConnection As New OleDb.OleDbConnection(strCn)
3.数据库的操作方式
为了便于说明问题,我在Sqlserver数据库服务器上建立一个测试数据库Test,并在该数据库上建立一个测试表Test,结构如下:
CREATE TABLE [dbo].[Test] (
[TestID] [int] IDENTITY (1, 1) NOT NULL ,/*测试编号,自动加一 */
[TestName] [varchar] (50) NOT NULL , /*测试项目 */
[TestValue] [float] NOT NULL , /*测试值 */
[Testdate] [datetime] NOT NULL , /*测试日期 */
[TestPerson] [char] (10) NOT NULL ,/*测试人 */
primary key([TestID])
)