2014-10-02 36 views
-1

我想从我的数据库的表列中插入所有数据,但现在即时通讯只获取一行/或简而言之,我想要获取所有数据列而不是只有1行,使用此代码IM:如何插入所有数据,而不是只获得1行

 Try 
    For i = 0 To dt.Rows.Count - 1 
    networkconn.Open()  
    Dim cmd As New OdbcCommand("INSERT INTO networkdatabase.table1(data,result) values('" & dt.Rows(0).Item("data").ToString & "','" & dt.Rows(0).Item("result").ToString() & "')", networkconn) 
    cmd.ExecuteNonQuery() 
    networkconn.close 
    Next 
    Catch ex As Exception 
    End Try 

这是我的表

+------------+----------+ 
| data | result | 
+------------+----------+ 
| 1234567890 | PASSED | 
| Test  | PASSED | 
| SAMPLE  | FAILED | 
| test  | FAILED | 
| GGGGGG  | PASSED | 
| 1111111111 | PASSED | 
| XXXXXXXXXX | PASSED | 
+------------+----------+ 

我的输出

+------------+----------+ 
| data | result | 
+------------+----------+ 
| 1234567890 | PASSED | 
+------------+----------+ 

期望输出

+------------+----------+ 
| data | result | 
+------------+----------+ 
| 1234567890 | PASSED | 
| Test  | PASSED | 
| SAMPLE  | FAILED | 
| test  | FAILED | 
| GGGGGG  | PASSED | 
| 1111111111 | PASSED | 
| XXXXXXXXXX | PASSED | 
+------------+----------+ 
+0

使用[循环](http://www.dotnetperls.com/for-vbnet) – HengChin 2014-10-02 06:05:49

+0

那么怎么样:'为每行作为DataRow在dt.Rows'? – 2014-10-02 06:42:35

+0

我该怎么做? – 2014-10-02 07:07:38

回答

0

你可以只是让更多的行SQL命令。允许在一个字符串中传递多个命令。仅仅通过分号

INSERT INTO table values(x,y,z); 
INSERT INTO table values(x,y,z); 
INSERT INTO table values(x,y,z); 
+0

我知道这个简单的逻辑,但我即将做我的代码,从本地主机获取数据,以便我使用数据表,然后传输到网络服务器 – 2014-10-02 06:18:55

0

分开你要插入的每一行,在TD这样的:

 For i = 0 To dt.rows.count - 1 
      Dim cmd As New OdbcCommand("INSERT INTO networkdatabase.table1(data,result) values('" & dt.Rows(i).Item("data").ToString & "','" & dt.Rows(i).Item("result").ToString() & "')", ServerCN) 
     Next 
+0

这是错误,当它将进入下一行。 – 2014-10-02 07:07:23

+0

请看我的编辑 – 2014-10-02 08:20:21

相关问题