第9章.ASP.NET操作数据库.doc
过 DataReader 中的 Get 方法来查询,如 GetString、GetInt32 等,这些方法根据字段类型获取对应列的值。例如,如果知道列名是"date",但不确定其在结果集中的位置,可以使用以下代码: ```csharp string date = rd.GetString(rd.GetOrdinal("date")); // 获取日期列的值 ``` 9.1.2 使用 ExecuteNonQuery() 操作数据库ExecuteNonQuery() 方法用于执行不返回结果集的 SQL 语句,如 INSERT、UPDATE 和 DELETE。这个方法不会返回任何数据,它只是执行 SQL 命令并返回受影响的行数。以下是一个更新数据的例子: ```csharp string str = "server='(local)';database='mytable';uid='sa';pwd='sa'"; SqlConnection con = new SqlConnection(str); con.Open(); string strsql = "UPDATE mynews SET title=@title WHERE id=@id"; SqlCommand cmd = new SqlCommand(strsql, con); cmd.Parameters.AddWithValue("@title", "新标题"); cmd.Parameters.AddWithValue("@id", 1); int rowsAffected = cmd.ExecuteNonQuery(); // 返回受影响的行数 con.Close(); ``` 9.1.3 使用 ExecuteScalar() 操作数据库ExecuteScalar() 方法用于执行 SQL 查询并返回第一行第一列的值。它通常用于查询返回单个值的 SQL 语句,如 COUNT(*) 或 MAX() 函数的结果。下面是一个使用 ExecuteScalar() 获取记录数的例子: ```csharp string str = "server='(local)';database='mytable';uid='sa';pwd='sa'"; SqlConnection con = new SqlConnection(str); con.Open(); string strsql = "SELECT COUNT(*) FROM mynews"; SqlCommand cmd = new SqlCommand(strsql, con); int recordCount = (int)cmd.ExecuteScalar(); con.Close(); ``` 9.2 使用 SQLHelper 类操作数据库为了简化数据库操作,ASP.NET 开发者通常会使用辅助类,如 SQLHelper,它封装了常见的 CRUD(创建、读取、更新、删除)操作。SQLHelper 提供了静态方法,如 ExecuteNonQuery、ExecuteReader 和 ExecuteDataset,这些方法分别对应于 ADO.NET 中的 ExecuteNonQuery、ExecuteReader 和 ExecuteDataset 方法。 9.2.1 SQLHelper 执行 SQL 语句使用 SQLHelper 执行 SQL 语句,可以减少代码量,提高代码可维护性。以下是一个使用 SQLHelper 更新数据的例子: ```csharp string connectionString = "server='(local)';database='mytable';uid='sa';pwd='sa'"; string sql = "UPDATE mynews SET title=@title WHERE id=@id"; SQLHelper helper = new SQLHelper(connectionString); helper.AddInParameter("@title", SqlDbType.NVarChar, "新标题"); helper.AddInParameter("@id", SqlDbType.Int, 1); int rowsAffected = helper.ExecuteNonQuery(sql); ``` 9.2.2 SQLHelper 执行存储过程SQLHelper 同样支持执行存储过程,只需提供存储过程名和参数即可。以下是一个调用存储过程的例子: ```csharp string connectionString = "server='(local)';database='mytable';uid='sa';pwd='sa'"; string procName = "usp_GetNewsById"; SQLHelper helper = new SQLHelper(connectionString); helper.AddInParameter("@id", SqlDbType.Int, 1); DataSet ds = helper.ExecuteDataset(procName); DataTable dt = ds.Tables[0]; ``` 9.3 数据源控件操作数据库ASP.NET 中的数据源控件(如 SqlDataSource、ObjectDataSource 等)允许开发者通过配置而非代码来连接和操作数据库。它们与视图状态、分页、排序和过滤等功能相结合,可以轻松地在网页上展示数据。 9.3.1 SqlDataSource 控件SqlDataSource 控件可以直接连接到 SQL Server 数据库,并执行 SELECT、INSERT、UPDATE 和 DELETE 语句。在 ASP.NET 页面上,可以通过拖放方式添加 SqlDataSource 控件,并在属性窗口中配置连接字符串和 SQL 命令。 9.3.2 ObjectDataSource 控件ObjectDataSource 控件用于调用业务逻辑层(Business Logic Layer, BLL)或数据访问层(Data Access Layer, DAL)的对象方法。这种方式使得视图与数据逻辑分离,提高了代码的可维护性和可扩展性。 总结:本章深入探讨了 ASP.NET 操作数据库的高级技术,从使用 ADO.NET 的 ExecuteReader、ExecuteNonQuery 和 ExecuteScalar 方法,到借助 SQLHelper 类简化数据库操作,再到利用数据源控件在页面上直接操作数据库,涵盖了多种数据库交互方式。这些知识能帮助开发者更高效、灵活地处理 ASP.NET 应用中的数据管理任务。
剩余24页未读,继续阅读
- zhou8482012-08-13感觉非常好,网上详细的教程太少了。
- 粉丝: 0
- 资源: 19
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助