ASP.NET连接SQL2008数据库示例:SqlCommand操作详解

0 下载量 53 浏览量 更新于2024-08-04 收藏 25KB DOCX 举报
"在ASP.NET编程中,连接SQL Server 2008数据库是一个常见的任务。本文档提供了一个详细的示例,展示了如何利用ASP.NET框架中的SqlConnection和SqlCommand类来实现这一功能。SqlCommand是System.Data.SqlClient命名空间下的核心类,它用于执行SQL语句或调用存储过程。 SqlCommand类有几个关键属性: 1. `CommandText`:这是用于执行的Transact-SQL语句或存储过程的文本内容。默认情况下,如果执行的是SQL语句,`CommandType`属性应设置为`CommandType.Text`;若为存储过程,则应设置为`CommandType.StoredProcedure`。 2. `CommandType`:控制如何解释`CommandText`,默认为`CommandType.Text`。 3. `Connection`:表示SqlCommand所关联的SqlConnection对象,用于建立与数据库的连接。 4. `CommandTimeout`:设置SQL命令的超时时间,防止查询无限期运行。 SqlCommand类提供了几个主要的方法: - `ExecuteNonQuery()`:执行无返回值的操作,如更新、插入和删除记录,返回受影响的行数。 - `ExecuteScalar()`:执行返回单个值的查询,如使用聚合函数的SQL语句,返回的结果是一个单一的对象。 - `ExecuteReader()`:返回一个DataReader对象,用于逐行读取查询结果,通常用于处理分页和数据绑定。 下面是一个ASP.NET页面的示例代码片段,展示如何在`Default.aspx.cs`文件中使用这些类: ```csharp using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data.SqlClient; using System.Data; public partial class Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { string connectionString = ConfigurationManager.ConnectionStrings["YourConnectionStringName"].ConnectionString; // 替换为实际的数据库连接字符串 using (SqlConnection connection = new SqlConnection(connectionString)) { connection.Open(); // 执行NonQuery操作 int rowsAffected = ExecuteNonQueryCommand(connection, "INSERT INTO YourTable (Column1, Column2) VALUES (@value1, @value2)", new SqlParameter("@value1", "Value1"), new SqlParameter("@value2", "Value2")); Console.WriteLine("Affected rows: " + rowsAffected); // 执行Scalar查询 object scalarResult = ExecuteScalarQuery(connection, "SELECT COUNT(*) FROM YourTable"); Console.WriteLine("Scalar result: " + scalarResult); // 使用Reader执行查询 using (SqlDataReader reader = ExecuteReaderQuery(connection, "SELECT * FROM YourTable")) { while (reader.Read()) { // 处理查询结果 Console.WriteLine(reader["ColumnName"]); } } } } private int ExecuteNonQueryCommand(SqlConnection connection, string sql, params SqlParameter[] parameters) { SqlCommand command = new SqlCommand(sql, connection); foreach (SqlParameter parameter in parameters) { command.Parameters.Add(parameter); } return command.ExecuteNonQuery(); } private object ExecuteScalarQuery(SqlConnection connection, string sql) { SqlCommand command = new SqlCommand(sql, connection); return command.ExecuteScalar(); } private SqlDataReader ExecuteReaderQuery(SqlConnection connection, string sql) { SqlCommand command = new SqlCommand(sql, connection); return command.ExecuteReader(); } } ``` 这个示例中,首先从配置文件中获取数据库连接字符串,然后创建SqlConnection对象并打开连接。之后,分别演示了如何执行插入操作、获取单个值和读取多行数据。请注意,实际应用中需要根据具体的数据库表结构和需求调整SQL语句和参数。"