【问题标题】:How to get a datagrid cell values如何获取数据网格单元格值
【发布时间】:2010-02-21 13:23:18
【问题描述】:

使用 VB.Net

我想获取所有数据网格单元格的值,然后插入到 table1 中。

代码

cmd = New SqlCommand("insert into table1 values('" & DataGrid.Rows(0).Cells(0).Value & "', '" & DataGrid.Rows(0).Cells(1).Value & "', '" & DataGrid.Rows(0).Cells(2).Value & "', '" & DataGrid.Rows(0).Cells(3).Value & "')", con)
cmd.ExecuteNonQuery()

上面的代码是插入第一行数据网格单元格值,但我想插入所有数据网格单元格值

如何修改我的代码以获取所有数据网格单元格值。

【问题讨论】:

    标签: .net vb.net


    【解决方案1】:

    尽管存在缺陷,但仍坚持使用现有代码(请务必查看:SQL Injection

    你可以这样做:

    For Each row As DataGridViewRow in dataGrid.Rows
    
        cmd = New SqlCommand("insert into table1 values('" & row.Cells(0).Value & "', '" & row.Cells(1).Value & "', '" & row.Cells(2).Value & "', '" & row.Cells(3).Value & "')", con)
        cmd.ExecuteNonQuery()
    
    Next
    

    可以进行许多改进,但这回答了您的问题:

    【讨论】:

      【解决方案2】:

      首先:通过参数避免SQL注入

      然后:遍历所有行并插入它们

      伪代码:

      foreach(var row in DataGid.Rows)
      {
          insert();
      }
      

      【讨论】:

      • @Arthur - 在插入语句中,我怎样才能给出像 datagrid.rows(0).cell(0).value 这样的值意味着它将只占用第一行或所有行?