ADO.NET批量更新操作
2014-08-20来源:易贤网

批量更新操作

.在上一个版本的ADO.NET当中,SqlDataAdapterde的Update方法将会为 DataSet当中的每一行调用一次更新操作

.在ADO.NET2.0中,您可以设置UpdateBatchSize属性,在单步中执行多个更新

.这样,可以提高数据更新的效率

.UpdataBatchSize的默认值为1,使得默认的更新行为与以前版本的ADO.NET一致。

代码经验

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");

}

更多信息请查看IT技术专栏

推荐信息