ADO.NET连接数据库详解:SqlConnection与SqlCommand的使用

需积分: 10 1 下载量 69 浏览量 更新于2024-09-14 收藏 8KB TXT 举报
"这篇文章主要介绍了ADO.NET的经典连接用法,包括如何使用SqlCommand构造函数和不同数据库的连接方式。" 在.NET框架中,ADO.NET(ActiveX Data Objects .NET)是用于与各种数据源进行交互的一组组件。它提供了一种高效、灵活的方式来访问和操作数据库。以下是关于ADO.NET经典连接用法的详细说明: 1. SqlCommand构造函数 - `SqlCommand` 类是用于执行SQL命令的对象。它可以创建SQL查询或存储过程调用。 - 无参数构造函数:`public SqlCommand();` 创建一个空的SqlCommand对象,可以后续设置命令文本。 - 带查询文本的构造函数:`public SqlCommand(string);` 初始化SqlCommand时直接传入SQL查询语句。例如: ```csharp String mySelectQuery = "SELECT * FROM mindata"; SqlCommand myCommand = new SqlCommand(mySelectQuery); ``` 2. SqlConnection对象 - `SqlConnection` 是ADO.NET中的类,用于与SQL Server建立连接。 - 创建SqlConnection对象: - 可以直接通过连接字符串初始化,如: ```csharp string mySqlConnection = "userid=sa;password=sinofindb;initialcatalog=test;datasource=127.0.0.1;ConnectTimeout=30"; SqlConnection myConnection = new SqlConnection(mySqlConnection); myConnection.Open(); ``` - 或者将连接字符串存储在变量中再创建对象,如: ```csharp string mySqlConnection = "userid=sa;password=sinofindb;Database=test;datasource=127.0.0.1;ConnectTimeout=30"; SqlConnection myConnection = new SqlConnection(mySqlConnection); myConnection.Open(); ``` 3. 与其他数据库的连接 - OleDbConnection:适用于多种数据源,如SQL Server,但需要指定Provider。例如: ```csharp string MySqlConnection = "Provider=SQLOLEDB;DataSource=localhost;InitialCatalog=test;IntegratedSecurity=SSPI;"; OleDbConnection myConnection = new OleDbConnection(MySqlConnection); myConnection.Open(); ``` - Access数据库连接:通常使用Jet OLEDB Provider,如: ```csharp string MySqlConnection = "Provider=Microsoft.Jet.OLEDB.4.0;DataSource=c:\db2000.mdb;PersistSecurityInfo=False;"; OleDbConnection myConnection = new OleDbConnection(MySqlConnection); myConnection.Open(); ``` - Oracle数据库连接:需要Oracle Provider,如: ```csharp string MySqlConnection = "Provider=MSDAORA;DataSource=db;userid=sa;password=sinofindb"; OleDbConnection myConnection = new OleDbConnection(MySqlConnection); myConnection.Open(); ``` 注意,Oracle数据库通常建议使用OracleConnection类,而不是OleDbConnection。 4. SqlCommand的其他方法 - 除了构造函数,SqlCommand还提供了许多其他方法,如`ExecuteNonQuery()`用于执行非查询操作(如INSERT, UPDATE, DELETE),`ExecuteReader()`用于获取数据集,`ExecuteScalar()`用于获取单个值等。 5. 事务处理 - ADO.NET支持在SqlConnection上开启事务,以确保一组数据库操作的原子性。可以使用`SqlTransaction`类来管理事务。 6. 参数化查询 - 为了防止SQL注入攻击,推荐使用参数化查询。例如: ```csharp SqlCommand myCommand = new SqlCommand("SELECT * FROM mindata WHERE id = @id", myConnection); myCommand.Parameters.AddWithValue("@id", idValue); ``` 7. 错误处理和关闭连接 - 在操作数据库后,记得关闭连接以释放资源,可以使用`Close()`或`Dispose()`方法。 - 使用`try-catch-finally`块处理可能出现的异常。 ADO.NET提供了丰富的功能来处理数据库操作,包括多种类型的数据库连接和命令执行方式。正确使用这些工具可以确保应用程序与数据库的高效、安全通信。