【问题标题】:Insert multiple record from datagridview into my database table useing VB.NET使用 VB.NET 将 datagridview 中的多条记录插入到我的数据库表中
【发布时间】:2013-04-16 07:22:09
【问题描述】:

我想 insert 记录从 datagridviewmysql database table , 但我不知道如何将datagridview 插入数据库table。 怎么做? :(

【问题讨论】:

    标签: mysql vb.net datagridview


    【解决方案1】:

    kumar,你的代码有问题

    name = Me.DataGridView1.Rows(i).Cells(0).ToString()
    
      age= Me.DataGridView1.Rows(i).Cells(1).ToString()
    

    应该是

    name = Me.DataGridView1.Rows(i).Cells(0).Value.ToString()
    
      age= Me.DataGridView1.Rows(i).Cells(1).Value.ToString()
    

    【讨论】:

      【解决方案2】:

      这只是我的建议,如果你有你的代码,那么可以做得更好

         Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
              ''create connection 
              Dim conn As SqlConnection = New SqlConnection()
              conn.Open()
      
              Dim comm As SqlCommand = New SqlCommand()
              comm.Connection = conn
      
              ''insert data to sql database row by row
              Dim name, ageAs String
              For i As Integer = 0 To Me.DataGridView1.Rows.Count
                  name = Me.DataGridView1.Rows(i).Cells(0).ToString()
                  age= Me.DataGridView1.Rows(i).Cells(1).ToString()
      
                  comm.CommandText = "insert into mytable(name,age) values('" & name & "','" & age& "')"
                  comm.ExecuteNonQuery()
              Next
      
              conn.Close()
      
          End Sub
      

      这只是一种插入方式,最好使用存储过程插入值,因为如果使用 SQL 可能会发生 SQL 注入。所以存储过程是最好的方式,保存后使用。

      【讨论】:

      • 如果我想从 datagridview 插入多行呢?或者你对我的问题有什么想法吗?无论如何,谢谢你的帮助
      • 我的建议是你使用存储过程。你只需要创建一次就可以在查询中多次使用。
      • 使用较新的代码。自从使用 for each 循环以来,这实际上会对您有所帮助。
      • 非常感谢 kumar,它非常有帮助,我现在可以从 datagridview 插入 mysql,
      【解决方案3】:

      更改代码行:

       For i As Integer = 0 To Me.AddPurchases.Rows.Count
      

      用这一行:

       For i As Integer = 0 To Me.AddPurchases.Rows.Count - 1 
      

      以上是verohwm 消息异常的解决方法。 *

      【讨论】:

        【解决方案4】:

        我没有插入数据,而是尝试更新记录并为我自己

        Me.AddPurchases.Rows(i).Cells(0).Value.ToString()

        这个语句没有解决这个语句返回行数和列数的目的,比如 { row=0,col=1} 下一次迭代 { row=0,col=1} 等等 但是

        Dim roid As String
        
            For i As Integer = 0 To Me.edit_role_grid.RowCount - 1
                roid = Me.edit_role_grid.Rows(i).Cells(0).FormattedValue
                MsgBox(roid) 
        

        这对我来说很好,这是返回单元格的文本,现在这个值可以在任何地方使用

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2019-02-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-02-11
          • 2018-05-07
          • 1970-01-01
          相关资源
          最近更新 更多