我遇到了一些麻烦。我有一个数据网格视图,它显示了数据库sql server中的所有数据。但是,当我尝试在datagridview中插入并保存新行一个或多个数据时,数据库中datagridview显示的上一次插入的数据将与我的新行数据一起再次插入。
我只是想插入并保存新行数据,而不是与以前的数据一起。请帮帮我!
Private Sub btnSave_Click(sender As Object, e As EventArgs) Handles btnSave.Click
cmd = New SqlCommand("Insert into DataSK values (@NIK, @Name, @Address, @Email, @Status)", con)
cmd.Parameters.Clear()
cmd.Parameters.Add("@NIK", SqlDbType.VarChar, 20).Value = dgv.Rows(row).Cells("NIK").Value
cmd.Parameters.Add("@Name", SqlDbType.VarChar, 50).Value = dgv.Rows(row).Cells("Name").Value
cmd.Parameters.Add("@Address", SqlDbType.VarChar, 50).Value = dgv.Rows(row).Cells("Address").Value
cmd.Parameters.Add("@Email", SqlDbType.Char, 50).Value = dgv.Rows(row).Cells("Email").Value
cmd.Parameters.Add("@Status", SqlDbType.VarChar, 10).Value = dgv.Rows(row).Cells("Status").Value
cmd.ExecuteNonQuery()
End Sub
这样的事情应该会让你开始。
Imports System.Data.SqlClient
Public Class Form1
Dim connetionString As String
Dim connection As SqlConnection
Dim adapter As SqlDataAdapter
Dim cmdBuilder As SqlCommandBuilder
Dim ds As New DataSet
Dim changes As DataSet
Dim sql As String
Dim i As Int32
Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
connetionString = "Data Source=ServerName;Initial Catalog=YourDatabaseName;Trusted_Connection=True;"
connection = New SqlConnection(connetionString)
sql = "Select * from Products"
Try
connection.Open()
adapter = New SqlDataAdapter(Sql, connection)
adapter.Fill(ds)
DataGridView1.DataSource = ds.Tables(0)
connection.Close()
Catch ex As Exception
MsgBox(ex.ToString)
End Try
End Sub
Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
'NOTE: for this code to work, there must be a PK on the Table
Try
cmdBuilder = New SqlCommandBuilder(adapter)
changes = ds.GetChanges()
If changes IsNot Nothing Then
adapter.Update(changes)
End If
MsgBox("Changes Done")
Catch ex As Exception
MsgBox(ex.ToString)
End Try
End Sub
End Class