关于SQL 2005 数据写入的简单问题~~在线等!!!

来源:百度知道 编辑:UC知道 时间:2024/07/04 11:59:22
环境是ASP.NET,用的VB.NET语言。
现在有一个结构体的数组tbMak(9),每一个数组元素都是一个结构体,有4个成员a、b、c、d,都是string型的。我想把里面的值对应地写到一张表(比如TM_Table)的4个字段里A,B,C,D(非主键,可以为NULL)。
应该怎么办??
strSql = strSql + " INSERT INTO TM_Table"
strSql = strSql + " (TM_Table.A"
strSql = strSql + " , TM_Table.B"
strSql = strSql + " , TM_Table.C"
strSql = strSql + " , TM_Table.D)"
strSql = strSql + " VALUES"
strSql = strSql + " ('" & tbMak(0).a
strSql = strSql + "' ,'" & tbMak(0).b
strSql = strSql + "' ,'" & tbMak(0).c
strSql = strSql + "' ,'" & tbMak(0).d & "')"

这样写可以么?但只能写进一条记录,全写入的话难道整个过程要循环10次么(写一条记录要打开,连接,关闭数据库。循环10次太费时间了?)??有没有什么好方法??

求教高手~~~先谢谢了。答的好我会继续加分的!!
linsio1983 ,先谢谢了,第3种方法能不能说的详细些(10次INSERT那前面的语句不就被覆盖了么),最好写几行代码,我现在刚接触SQL,不是很清楚。

另外方便的话,前两种

1。用dateset,你可以考虑用将数据存入数据集中,然后做一次性提交处理
2。将数据写入临时文件**.csv然后用bcp命令导入
3。你程序中数据库连接和关闭为啥每次都要做,难道不可以打开连接,10次insert然后关闭吗?1,2两种方法比较适合大数据量的情况。对于10条这种情况的话也许没什么必要 :)

用SQL写一个存储过程.
create proc proc_xx
@a varchar(20),
@b varchar(20),
@c varchar(20),
@d varchar(20)
as
insert into TM_Table values(@a,@b,@c,@d)
写10个这样的insert语句就可以了.
也可以循环写10个.
sql里可以用exec proc_xx '1','2','3','4'看测试效果...
程序里就可以用strSql = "exec proc_xx'"+tbMak(0).a+"',"'tbMak(0).b+"','"+tbMak(0).c+"','"+tbMak(0).d+"'"