C#数据库操作详解:连接与执行SQL

需积分: 10 8 下载量 156 浏览量 更新于2024-09-16 收藏 74KB DOC 举报
"这篇文档是关于C#编程语言中如何进行常见数据库操作的教程,主要涉及使用SqlConnection和SqlCommand等类来连接和操作SQL Server数据库。" 在C#中,数据库操作是应用程序的重要组成部分,尤其是对于那些需要存储和检索数据的应用。本教程聚焦于使用C#与SQL Server数据库进行交互的基本步骤。 首先,你需要导入`System.Data.SqlClient`命名空间,这个命名空间包含了处理SQL Server数据库所需的所有类。然后,创建一个连接字符串`ConnectionStr`,它包含数据库服务器名称、数据库名、用户名和密码。例如: ```csharp String ConnectionStr = "server=.;database=数据库名;uid=sa;pwd=123456;"; ``` 接下来,使用这个连接字符串实例化一个`SqlConnection`对象,这是连接到SQL Server数据库的基础: ```csharp SqlConnection conn = new SqlConnection(ConnectionStr); ``` 在执行任何数据库操作之前,需要打开数据库连接: ```csharp conn.Open(); ``` 数据操作通常涉及到SQL语句,例如插入、删除、更新和查询。你可以将这些SQL语句赋值给一个字符串变量`SQLString`,然后用这个字符串创建一个`SqlCommand`对象: ```csharp SqlCommand comm = new SqlCommand(SQLString, conn); ``` 执行数据库操作时,不同的方法对应不同的操作类型: - `ExecuteNonQuery()`:用于执行不返回结果集的SQL语句,如INSERT、UPDATE、DELETE,返回值是受影响的行数。 - `ExecuteReader()`:用于执行返回结果集的SQL查询,返回一个`SqlDataReader`对象,可以遍历查询结果。 - `ExecuteScalar()`:用于执行返回单个值的SQL查询,如SELECT语句返回的第一行第一列的数据。 例如,执行一个SQL语句并获取受影响的行数: ```csharp int rows = comm.ExecuteNonQuery(); ``` 或者,如果执行的是查询操作,可以使用`ExecuteReader()`: ```csharp SqlDataReader dr = comm.ExecuteReader(); ``` 如果只需要获取查询结果的第一个值,可以使用`ExecuteScalar()`: ```csharp Object result = comm.ExecuteScalar(); // 或者转换成具体类型,如string ``` 最后,记得在完成操作后关闭数据库连接以释放资源: ```csharp conn.Close(); ``` 此外,如果你的SQL语句涉及到参数,可以使用`SqlParameter`类来添加参数,以避免SQL注入攻击。例如: ```csharp SqlParameter MyParameter = new SqlParameter("@paramName", SqlDbType.VarChar); MyParameter.Value = "paramValue"; comm.Parameters.Add(MyParameter); ``` C#提供了丰富的API来实现与SQL Server的高效交互,通过理解并熟练运用这些方法,开发者可以轻松地构建功能强大的数据驱动应用。