ASP.NET (C#) 数据库-01_ADO_NET-04_DataSet-05_ModifyDataRowCommandBuilder

摘要:ASP.NET (C#) 数据库-01_ADO_NET-04_DataSet-05_ModifyDataRowCommandBuilder



一、数据库 DataSet 对象使用 CommandBuilder 自动产生命令参数列异动伺服端实例数据的操作范例:


using System.Configuration;
using System.Data;
using System.Data.OleDb;
using System.Data.SqlClient;

partial class _01_ADO_NET_04_DataSet_05_ModifyDataRowCommandBuilder : System.Web.UI.Page
{
    //设定欲执行的 SQL 命令、预存进程或数据表名称字符串。
    string strSQL = "SELECT * FROM News_Tb";

    //取得 Web.config 档的数据连接设定。(Access 数据库)
    ConnectionStringSettings setting_01 = ConfigurationManager.ConnectionStrings["OLEDB_Access_DB_ConnectionString01"];
    //取得 Web.config 档的数据连接设定。(MS-SQL(MDF) 数据库)
    ConnectionStringSettings setting_02 = ConfigurationManager.ConnectionStrings["MS-SQL_DB_ConnectionString01"];
    //取得 Web.config 档的数据连接设定。(MS-SQL 数据库)
    ConnectionStringSettings setting_03 = ConfigurationManager.ConnectionStrings["MS-SQL_DB_ConnectionString02"];

    //建立对象案例。
    DataSet objDataSet = new DataSet();

    //当页面载入时所要执行动作。
    protected void Page_Load(object sender, System.EventArgs e)
    {
        //建立对象案例。(选择数据连结模式)
        OleDbConnection objOleDbConnection_01 = new OleDbConnection(setting_01.ConnectionString);
        //建立对象案例。(并加入 SQL 陈述式,用来执行 SQL 命令,用来之后将执行结果返回的数据放入 DataSet 对象)
        OleDbDataAdapter objOleDbDataAdapter_01 = new OleDbDataAdapter(strSQL, objOleDbConnection_01);
        //建立对象案例。(会自动建立相关的 Command 查询、新增、删除、修改,等参数列)
        OleDbCommandBuilder objOleDbCommandBuilder_01 = new OleDbCommandBuilder(objOleDbDataAdapter_01);
        
        //建立对象案例。(用来执行 SQL 命令,用来之后将执行结果返回的数据放入 DataSet 对象)
        SqlConnection objSqlConnection_02 = new SqlConnection(setting_02.ConnectionString);
        //建立对象案例。(并加入 SQL 陈述式,用来执行 SQL 命令,用来之后将执行结果返回的数据放入 DataSet 对象)
        SqlDataAdapter objSqlDataAdapter_02 = new SqlDataAdapter(strSQL, objSqlConnection_02); ;
        //建立对象案例。(会自动建立相关的 Command 查询、新增、删除、修改,等参数列)
        SqlCommandBuilder objSqlCommandBuilder_02 = new SqlCommandBuilder(objSqlDataAdapter_02);
        
        //建立对象案例。(用来执行 SQL 命令,用来之后将执行结果返回的数据放入 DataSet 对象)
        SqlConnection objSqlConnection_03 = new SqlConnection(setting_03.ConnectionString);
        //建立对象案例。(选择数据连结模式)
        SqlDataAdapter objSqlDataAdapter_03 = new SqlDataAdapter(strSQL, objSqlConnection_03);
        //建立对象案例。(会自动建立相关的 Command 查询、新增、删除、修改,等参数列)
        SqlCommandBuilder objSqlCommandBuilder_03 = new SqlCommandBuilder(objSqlDataAdapter_03);

        //使用 DataAdapter 对象的 Full() 方法,将 SQL 命令执行结果所选取的数据放入 DataSet 对象。
        //参数一:是要放入数据的 DataSet 对象。(Access 数据库)
        objOleDbDataAdapter_01.Fill(objDataSet, "News_Tb");
        //参数一:是要放入数据的 DataSet 对象。(MS-SQL 数据库)
        //objSqlDataAdapter_02.Fill(objDataSet, "News_Tb");

        //声明对象变量。(用来存放数据表)
        DataTable dtDataTable = objDataSet.Tables["News_Tb"];

        //更新数据列。(经测试后,只能指定 Rows(x) 的数值来代表目前记录数,其余参数是更新数据用)
        dtDataTable.Rows[0]["News_Subject_F"] = "小丸子更新后1";
        dtDataTable.Rows[0]["TouchCounts_F"] = 20;

        //删除数据列。
        dtDataTable.Rows[0].Delete();

        //声明对象变量。(用来存放数据列)
        DataRow drDataRow = dtDataTable.NewRow();
        //新增数据列
        drDataRow["News_ID_F"] = 97;
        drDataRow["News_Subject_F"] = "小丸子90";
        dtDataTable.Rows.Add(drDataRow);

        //将 DataSet 对象的数据更新回数据来源。
        //此程序段方式是由程序段前后依序执行结果。
        //objDataAdapter.Update(objDataSet, "News_Tb")

        //此程序段方式可以固定并指定对像执行结果。
        //由上述objDataAdapter.Update(objDataSet, "News_Tb")方式,请选择一种使用。
        objOleDbDataAdapter_01.Update(dtDataTable.Select(null, null, DataViewRowState.ModifiedCurrent));
        objOleDbDataAdapter_01.Update(dtDataTable.Select(null, null, DataViewRowState.Deleted));
        objOleDbDataAdapter_01.Update(dtDataTable.Select(null, null, DataViewRowState.Added));

        //释放与关闭占用的连接资源。
        objOleDbCommandBuilder_01.Dispose();
        objSqlCommandBuilder_02.Dispose();
        objSqlCommandBuilder_03.Dispose();
        dtDataTable.Dispose();
        objDataSet.Dispose();
        objOleDbDataAdapter_01.Dispose();
        objSqlDataAdapter_02.Dispose();
        objSqlDataAdapter_03.Dispose();
    }
}


详细 UI 部分请自行参阅源代码的.aspx 部分

AspDataBase.rar

原文:大专栏  ASP.NET (C#) 数据库-01_ADO_NET-04_DataSet-05_ModifyDataRowCommandBuilder


猜你喜欢

转载自www.cnblogs.com/chinatrump/p/11512790.html