以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 关于快速保存代码的疑问 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=175650) |
-- 作者:rogen -- 发布时间:2022/3/14 9:15:00 -- 关于快速保存代码的疑问 论坛找到这么一个快速保存至mssql的代码 Dim tran As System.Data.SqlClient.SqlTransaction try Dim conn As new System.Data.SqlClient.SqlConnection("server=voyo;uid=sa;pwd=hailun.;database=Test") conn.Open() \'打开链接 tran = conn.BeginTransaction() Dim mapping1 As new System.Data.SqlClient.SqlBulkCopyColumnMapping("第一列", "第一列") Dim mapping2 As new System.Data.SqlClient.SqlBulkCopyColumnMapping("第二列", "第二列") Dim copy As new System.Data.SqlClient.SqlBulkCopy(conn, System.Data.SqlClient.SqlBulkCopyOptions.Default, tran) Copy.ColumnMappings.Add(mapping1) Copy.ColumnMappings.Add(mapping2) copy.Destinati \'指定服务器上目标表的名称 copy.BatchSize = 1000 copy.WriteToServer(DataTables("表D").basetable) \'你的datatable名字,执行把DataTable中的数据写入DB tran.Commit() \'提交事务 msgbox("OK") catch ex As exception msgbox(ex.message) tran.Rollback() \'返回False 执行失败! End try 我的疑问是:若数据表的字段很多,几十个的话,那红色部分不得写几十行啊 有啥方法能简化不,最好是能整合成一个函数,往里面传参,就方便了。 |
-- 作者:有点蓝 -- 发布时间:2022/3/14 9:44:00 -- 使用数组遍历呀,比如这种:http://www.foxtable.com/webhelp/topics/1533.htm |
-- 作者:rogen -- 发布时间:2022/3/14 9:57:00 -- 以下是引用有点蓝在2022/3/14 9:44:00的发言:
使用数组遍历呀,比如这种:http://www.foxtable.com/webhelp/topics/1533.htm 我知道是用循环,只是不知这个循环应该怎么写,要把哪些语句包在循环体内 麻烦蓝版打个样 |
-- 作者:有点蓝 -- 发布时间:2022/3/14 10:02:00 -- 所以提问请尽量把问题一次描述清楚 Dim Cols2() As String = {"接收列一","接收列二","接收列三"} Dim copy As new System.Data.SqlClient.SqlBulkCopy(conn, System.Data.SqlClient.SqlBulkCopyOptions.Default, tran) for i as integer =0 to cols.length - 1 Copy.ColumnMappings.Add(new System.Data.SqlClient.SqlBulkCopyColumnMapping(Cols1(i),Cols2(i))) next
|