2013-03-20 163 views
0

我知道这是简单的,但我不能做到这一点或找到任何答案搜索谷歌。更新/编辑数据库

我想更新/编辑数据。在数据库服务器中,通过单击显示在我的DataGridView上的数据。

下面是我的子编辑,代码不会自动将记录提取到文本框。

Private Sub btnEdit_Click(ByVal sender As System.Object, 
    ByVal e As System.EventArgs) Handles btnEdit.Click 

    Dim transaction As SqlTransaction = Nothing 

    With New SqlConnection(connectionString) 
    Try 
     Call .Open() 
     transaction = .BeginTransaction() 
     With .CreateCommand() 
     .Transaction = transaction 
     .CommandText = "UPDATE [tbl_info] SET [Name][email protected] WHERE [ID][email protected];" 
     With .Parameters 
      .AddWithValue("ID", txtID.Text) 
      .AddWithValue("Name", txtName.Text) 
     End With 
     Call .ExecuteNonQuery() 
     Call transaction.Commit() 
     Call MessageBox.Show("has been update successfully") 
     End With 
    Catch ex As Exception 
     Call transaction.Rollback() 
     Call MessageBox.Show(ex.Message, "Error") 
    Finally 
     Call .Close() 
    End Try 
    End With 
    RefreshData() 

    Call txtID.Clear() 
    Call txtName.Clear() 
End Sub 
+0

你的connectionString是什么? 您是否收到任何异常或错误?或者它只是没有更新?它是什么样的SQL服务器? MS SQL服务器? – 2013-03-20 02:53:03

+0

以及我没有得到任何错误。该代码是工作。当然,我需要手动输入id,只是为了编辑显示在我的gridview上的数据。 – newbie 2013-03-20 02:55:40

+0

请不要在全部大写中发布您的问题标题。这让他们更难阅读,这很烦人,并且被认为是SHOUTING(这是粗鲁的)。在正确的情况下发布会让您的问题更容易阅读,并且会提高您获得答案的机会。他们发明了Shift键是有原因的。 :-)请使用它。谢谢。 – 2013-03-20 02:57:01

回答

0

在ExecuteNonQuery行上,捕获受影响的行数。

Dim rc As Integer = .ExecuteNonQuery() 

如果rc返回为零,我们可以告诉查询运行并且没有发现任何更新。

相关问题