ADO.NET批量更新操作

字號(hào):


    批量更新操作
    .在上一個(gè)版本的ADO.NET當(dāng)中,SqlDataAdapterde的Update方法將會(huì)為 DataSet當(dāng)中的每一行調(diào)用一次更新操作
    .在ADO.NET2.0中,您可以設(shè)置UpdateBatchSize屬性,在單步中執(zhí)行多個(gè)更新
    .這樣,可以提高數(shù)據(jù)更新的效率
    .UpdataBatchSize的默認(rèn)值為1,使得默認(rèn)的更新行為與以前版本的ADO.NET一致。
    代碼經(jīng)驗(yàn)
    public Form1()
    {
    conn = new SqlConnection(ConfigurationManager.ConnectionStrings["AWConnectionString"].ConnectionString);
    dAdapt = new SqlDataAdapter("SELECT ProductID, Name, ListPrice FROM Production.Product", conn);
    InitializeComponent();
    }
    SqlConnection conn;
    SqlDataAdapter dAdapt;
    DataSet dSet = new DataSet();
    StringBuilder logString = new StringBuilder("");
    private void batchUpdateForm_Load(System.Object sender, System.EventArgs e)
    {
    dAdapt.RowUpdating += new System.Data.SqlClient.SqlRowUpdatingEventHandler(OnRowUpdating);
    dAdapt.RowUpdated += new System.Data.SqlClient.SqlRowUpdatedEventHandler(OnRowUpdated);
    }
    private void getDataButton_Click(System.Object sender, System.EventArgs e)
    {
    dAdapt.Fill(dSet, "Product");
    productGrid.DataSource = dSet.Tables["Product"];
    }
    private void updateDataButton_Click(System.Object sender, System.EventArgs e)
    {
    SqlCommandBuilder cb = new SqlCommandBuilder(dAdapt);
    logString.Remove(0, logString.Length);
    // Enable batching by setting batch size != 1.
    dAdapt.UpdateBatchSize = int.Parse(batchSizeTextBox.Text);
    // Execute the update.
    dAdapt.Update(dSet.Tables["Product"]);
    MessageBox.Show(logString.ToString());
    }
    //handler for the RowUpdating event
    public void OnRowUpdating(object sender, SqlRowUpdatingEventArgs e)
    {
    logString.AppendLine("Starting row update");
    }
    // handler for RowUpdated event
    public void OnRowUpdated(object sender, SqlRowUpdatedEventArgs e)
    {
    logString.AppendLine("Completed row update");
    }