关于以DataTable形式批量写入数据的案例

复制代码
//批量添加数据交互ADO.NET部分
void
IDataAccess.CommandDataTable(DataTable dt, string ProcedureName, System.Data.Common.DbParameter[] para) {   _sqlConnection = new SqlConnection(strConnet);   SqlDataAdapter MyAdapter = new SqlDataAdapter();   MyAdapter.InsertCommand = new SqlCommand();   MyAdapter.InsertCommand.CommandType = CommandType.StoredProcedure;   MyAdapter.InsertCommand.CommandText = ProcedureName;   MyAdapter.InsertCommand.Connection = _sqlConnection;   foreach (SqlParameter parm in para)     MyAdapter.InsertCommand.Parameters.Add(parm);   MyAdapter.Update(dt);   if (_sqlConnection != null)   {     _sqlConnection.Close();   }   GC.Collect(); } //创建要添加的批量数据Table public System.Data.DataTable CreateCartTable() {   System.Data.DataTable dt = new System.Data.DataTable();   System.Data.DataRow dr;   dt.Columns.Add(new System.Data.DataColumn("UserID"));   dt.Columns.Add(new System.Data.DataColumn("ProductID"));   dt.Columns.Add(new System.Data.DataColumn("Count"));   IDataReader reader = new MssqlDataReader();   string[] s = Request.QueryString["ids"].ToString().Split(new char[] { ',' });   if (s != null && s.Length > 0)   {     for (int i = 0; i < s.Length; i++)     {       TempCart[] tc = reader.GetTempCartByID(Convert.ToInt32(s[i]));       if (tc.Length > 0)       {         dr = dt.NewRow();         dr[0] = Session["ID_Member"].ToString();         dr[1] = tc[0].ProductID.ToString();         dr[2] = tc[0].Count.ToString();         dt.Rows.Add(dr);       }     }   } return dt; } //调用批量添加的方法 void IDataWriter.AddCartMore(DataTable dt) {   IDataAccess access = DataCenter.GetDbConnection();   SqlParameter[] para ={     new SqlParameter("@UserID",SqlDbType.Int),     new SqlParameter("@ProductID",SqlDbType.Int),     new SqlParameter("@Count",SqlDbType.Int)   };   para[0].SourceColumn = dt.Columns[0].ColumnName;   para[1].SourceColumn = dt.Columns[1].ColumnName;   para[2].SourceColumn = dt.Columns[2].ColumnName;   access.CommandDataTable(dt, "Sy_Cart_Add", para); }
复制代码

 

posted @   海角之上  阅读(660)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示