在VB.NET中更新DGV中的多个选定行

时间:2012-11-05 03:18:18

标签: mysql vb.net datagridview

我有DataBound DGV它有Columns ID(not pk)NameStatus。我有2个按钮AddPost。添加Data添加到DGVDataBase(MySql),但在Status中,它会添加"No"。我想要做的是例如我Rows中有3 DGV并突出显示那些3并点击PostStatus中的值将更改为{{1} }}。这是我到目前为止所做的,但是我遇到了"Yes"的语法问题。 此代码现在可以使用

UPDATE QUERY

非常感谢任何帮助或提示。拜托,谢谢

2 个答案:

答案 0 :(得分:2)

试试这个,

Dim _ID As New List(Of String) 
Dim _Name As New List(Of String) 
For Each _x As DataGridViewRow In TestingDataGridView.SelectedRows  
   _ID.Add(_x.Cells("TransactionID").Value.ToString())
   _Name.Add("'" & _x.Cells("Name").Value.ToString() & "'")
Next 

Dim inClause As String = String.Join(",", _ID.ToArray()) 
Dim inClause1 As String = String.Join(",", _Name.ToArray()) 
Dim _sqlUpdate As String = String.Format("UPDATE testing SET Posted = @Posted WHERE TransactionID IN ({0}) AND Name IN ({1})", inClause, inClause1)

Using _conn As New MySqlConnection("Server = localhost; Username= root; Password =; Database = test")
    Using _comm As New MySqlCommand()
        With _comm
          .CommandText = _sqlUpdate
          .Connection = _conn
        End With
        Try
            _conn.Open()
            _comm.ExecuteNonQuery()
        Catch ex As MySqlException
            MsgBox(ex.Message.ToString())
        End Try

    End Using
End Using

答案 1 :(得分:0)

我相信你可以简单地使用这个

For Each Row As DataGridViewRow In TestingDataGridView.SelectedRows
   .CommandText = "UPDATE testing SET Posted = @iChange WHERE ID = " & Row.Cells(0) & ", Name = " & Row.Cells(1)
   .CommandType = CommandType.Text
   .Parameters.AddWithValue("@iChange", "Yes")
End For

希望这会有所帮助:)