一:使用Bulk到數據庫輔助表
1.在數據庫建立一張輔助表(字段爲需要插入的字段)
2.項目代碼處理,並調用存儲過程
//項目代碼
//創建表
dt.Columns.AddRange(new DataColumn[] {
new DataColumn("字段1",typeof(string)),
new DataColumn("字段2",typeof(string)),
new DataColumn("字段3",typeof(string)),
});
//將數據添加到數據庫輔助表
DataRow row = dt.NewRow();
row["字段1"] = model.字段1;
row["字段2"] = model.字段2;
row["字段3"] = model.字段3;
dt.Rows.Add(row);
}
dt.AcceptChanges();
//批量將值添加到數據庫輔助表表中
SQLHelper.BulkToDB(dt, "輔助表表名);
//調用存儲過程
SqlParameter[] parameters = {
new SqlParameter("",),
new SqlParameter("",};
int a;
SQLHelper.RunProcedure("存儲過程名", parameters, out a);
二:使用數據庫的用戶定義表類型
1.創建要傳的字段放入表類型中
CREATE TYPE 表類型名TABLE(
字段名1 字段類型 NULL
字段名2 字段類型 NULL
字段名3 字段類型 NULL
)
GO
2.項目代碼處理,並調用存儲過程
//項目代碼
//創建設備類型參數值內存表
DataTable MainData = new DataTable();
MainData.Columns.Add("字段名1", typeof(string));
MainData.Columns.Add("字段名2", typeof(string));
MainData.Columns.Add("字段名3", typeof(string));
//將數據添加到數據庫表類型中
DataRow MainRow = null;
for (var i = 0; i < item.list.Count; i++) {
MainRow = MainParamData.NewRow();
MainRow ["字段名1"] = item.list[i].字段名1;
MainRow ["字段名2"] = item.list[i].字段名2;
MainRow ["字段名3"] = item.list[i].字段名3;
MainRow .Rows.Add(MainRow );
}
//調用存儲過程
SqlParameter[] parameters = {
new SqlParameter("@tbtemp",MainData ),//@tbtemp要與存存儲過程聲明表類型的名字一致
parameters[2].Direction = ParameterDirection.Output;
SQLHelper.RunProcedure("存儲過程名", parameters, "ds");
//存儲過程申明表類型名稱
CREATE PROCEDURE 存儲過程名
@tbtemp 用戶定義表類型名 READONLY,
AS