I have populated a DataGridView from the two tables.i am working on windows forms
In page load event I have this code:
Dim adapter As SqlDataAdapter
Dim bSource As BindingSource
Dim dt1 As DataTable
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim con As SqlConnection = New SqlConnection("Data Source=SUPPORT2\SUPPORT2;Initial Catalog=Registry;Persist Security Info=True;User ID=sa;password=solutions") 'SET THE CONNECTION STRING
con.Open()
Dim cd As SqlCommandBuilder = New SqlCommandBuilder(adapter)
adapter = New SqlDataAdapter("select c.cid,c.CompanyName,d.dtName,d.dtPhone,d.dtEmail from CompanyMaster_tbl c join DepartmentMaster_tbl d on c.Cid=d.cId", con)
dt1 = New DataTable
bSource = New BindingSource
adapter.Fill(dt1)
bSource.DataSource = dt1
gv.DataSource = bSource
End Sub
in update button click i given code like this:
Dim cid As Integer
Dim cmpname As String
Dim dtname As String
Dim dtPhone As String
Dim dtEmail As String
Dim rv = DirectCast(bSource.Current, DataRowView)
cid = rv.Row.Field(Of Integer)("Cid")
cmpname = rv.Row.Field(Of String)("CompanyName")
dtname = rv.Row.Field(Of String)("dtName")
dtPhone = rv.Row.Field(Of String)("dtPhone")
dtEmail = rv.Row.Field(Of String)("dtEmail")
adapter.UpdateCommand.Parameters.AddWithValue("@Cid", cid)
adapter.UpdateCommand.Parameters.AddWithValue("@CompanyName", cmpname)
adapter.UpdateCommand.Parameters.AddWithValue("@dtName", dtname)
adapter.UpdateCommand.Parameters.AddWithValue("@dtPhone", dtPhone)
adapter.UpdateCommand.Parameters.AddWithValue("@dtEmail", dtEmail)
adapter.UpdateCommand = New SqlCommand("UPDATE CompanyMaster_tbl SET CompanyName = @CompanyName, dtName = @dtName, dtPhone = @dtPhone, dtEmail = @dtEmail WHERE Cid = @Cid", con)
Whenever I edit something in the dataGridView and click update button i am getting error in this line: adapter.UpdateCommand.Parameters.AddWithValue("@Cid", cid)
Error: Object reference not set to an instance of an object.