以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 狐表SQL数据库 可以使用SqlBulkCopy么? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=109019) |
-- 作者:李小胖 -- 发布时间:2017/11/2 18:28:00 -- 狐表SQL数据库 可以使用SqlBulkCopy么? 如果能 麻烦些个范本? 我要一次性插入上千条数据.每条数据只修改其中一个字段 |
-- 作者:有点甜 -- 发布时间:2017/11/2 19:42:00 -- 1、你要插入还是修改数据?插入数据,是新增一行;修改数据,是修改本来已经存在的数据。
2、SqlBulkCopy是用来新增数据的,不是用来修改数据的。 |
-- 作者:有点甜 -- 发布时间:2017/11/2 19:43:00 -- 或者,你看看
http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=98689&skin=0
|
-- 作者:李小胖 -- 发布时间:2017/11/3 8:41:00 -- 以下是引用有点甜在2017/11/2 19:42:00的发言:
1、你要插入还是修改数据?插入数据,是新增一行;修改数据,是修改本来已经存在的数据。
2、SqlBulkCopy是用来新增数据的,不是用来修改数据的。 我就是用来新增数据的,新增的行.其中只有一个字段数据不一样,其他都一样 |
-- 作者:有点甜 -- 发布时间:2017/11/3 8:45:00 -- 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.DestinationTableName = "表D" \'指定服务器上目标表的名称 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 |
-- 作者:李小胖 -- 发布时间:2017/11/3 10:03:00 -- 以下是引用有点甜在2017/11/3 8:45:00的发言:
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.DestinationTableName = "表D" \'指定服务器上目标表的名称 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 老师 您写得太深奥 没看明白Dim mapping1 As new System.Data.SqlClient.SqlBulkCopyColumnMapping("第一列", "第一列") \'改为自己的列名,有多少列就增加多少个 实例 如下 字段1 行为 字段2 时间 吃饭 2017.11.3 吃饭 2017.11.4 吃饭 2017.11.5 存储速度越快越好 这样的字段来一千条, 存储到 SQL 服务器上去..老师能帮忙写下实例么? 字段2 时间 每行增加1天 [此贴子已经被作者于2017/11/3 10:07:52编辑过]
|
-- 作者:李小胖 -- 发布时间:2017/11/3 10:43:00 -- Dim conn As new System.Data.SqlClient.SqlConnection("server=voyo;uid=sa;pwd=hailun.;database=Test") \'改为自己数据库的连接字符串 连接字符串怎么转换啊? 不能直接用狐表的连接字符串么? 我的字符串如下,请帮忙转换下 Provider=SQLOLEDB.1;Password=123d;Persist Security Info=True;User ID=456;Initial Catalog=789;Data Source=110.110.110.110,14399
|
-- 作者:有点蓝 -- 发布时间:2017/11/3 11:53:00 -- Dim conn As new System.Data.SqlClient.SqlConnection("server=110.110.110.110,14399;uid=456;pwd=123d.;database=789") |
-- 作者:bahamute -- 发布时间:2018/8/21 9:35:00 -- 好办法,顶啊,保存一万多条数据瞬间完成。 |
-- 作者:xiangwei_zeng -- 发布时间:2019/1/2 8:39:00 -- Dim tran As System.Data.SqlClient.SqlTransaction 参考并修改了代码,但提示这个错误,请问是我哪里还没有注意到? |