由于最近作的项目跟数据库有关系- -特此把分析的资料分享下- -顺便广告下我现在是电脑维修工 // --思路通过一个SqlDataAdapter先检索数据到DataTable中,修改DataTable中的数据在更新,主要通过设置 EmpAdapter.UpdateBatchSize = 100 ; // --该属性默认为,代表次处理条记录,是处理所有记录,不要设得太大 CommandUpdater.UpdatedRowSource = UpdateRowSource.None; // -----------提高性能 using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Data.SqlClient; public partial class Default3 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { //数据容器 DataTable BtMm=new DataTable(); SqlDataAdapter EmpAdapter = new SqlDataAdapter(); //-----------选择数据 SqlConnection DbConSelect = new SqlConnection(); //-------------复制数据到这个连接中 SqlConnection DbConUpdater = new SqlConnection(); SqlCommand CommandSelect = new SqlCommand(); SqlCommand CommandUpdater = new SqlCommand(); //DoNET DbConSelect.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; //DoNET DbConUpdater.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; //---------选择更新的数据 CommandSelect.CommandText = "SELECT* FROM b"; CommandSelect.CommandType = CommandType.Text; CommandSelect.Connection = DbConSelect; //-------------------------------------设置更新 CommandUpdater.CommandText = "update b set ID=@ID"; CommandUpdater.Connection = DbConUpdater; //--添加参数 SqlParameter a = new SqlParameter("@ID", SqlDbType.VarChar, 50, "ID");//注意最后一个Address代表从数据源检索的列 CommandUpdater.Parameters.Add(a);EmpAdapter.SelectCommand=CommandSelect;EmpAdapter.UpdateCommand=CommandUpdater;EmpAdapter.Fill(BtMm);//---调用CommandSelect检索数据DbConSelect.Close();foreach (DataRow dr in BtMm.Rows){ dr["ID"] = "- -ooo"+System.DateTime.Now.ToString();}//更新触发EmpAdapter.RowUpdated += new SqlRowUpdatedEventHandler(OnRowUpdated);Label1.Text = ""; EmpAdapter.UpdateBatchSize=100;//--该属性默认为,代表次处理条记录,是处理所有记录,不要设得太大 CommandUpdater.UpdatedRowSource = UpdateRowSource.None;//--------------------------------------------------------//Both 将输出参数和第一个返回行都映射到DataSet 中的已更改的行。 //FirstReturnedRecord 将第一个返回行中的数据映射到DataSet 中的已更改的行。 //None 忽略任何返回的参数或行。 //OutputParameters 将输出参数映射到DataSet 中的已更改的行。 try { DbConUpdater.Open(); EmpAdapter.Update(Blog); } catch (Exception) { } } private void OnRowUpdated(object sender, SqlRowUpdatedEventArgs args) { Label1.Text+=args.RowCount.ToString()+"<br>"; }} // ------------web.confing设置 < connectionStrings > < add name = " ConnectionString " connectionString = " Data Source=.;Initial Catalog=g;User ID=sa;Password=sa " /> < add name = " ConnectionStringInfo " connectionString = " Data Source=.;Initial Catalog=g;User ID=sa;Password=sa " /> </ connectionStrings > 转载于:https://www.cnblogs.com/ajaxren/archive/2007/05/03/734989.html