Hello, I am trying to update a row using the following code
However, each time i click update button I got the following error.
An unhandled exception of type 'System.NullReferenceException' occurred in SRecord.exe
Additional information: Object reference not set to an instance of an object.
I have already tried using this code too. the concatenation.
but I get an error that some values don't have a value.
I can insert a new row using the same concatenation but I cannot update
Please help.
I have also been trying to use the parameters but I got no success so far.
HTML Code:
Private Sub update_Click(sender As Object, e As EventArgs) Handles btUpdate.Click
con = New System.Data.OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\VS\studentrecord\SRecord\myRecord.accdb")
con.Open()
'sqlStr = "update tryTable set fname = '" & fname.Text & "', lname = '" & lname.Text & "', [email] = '" & email.Text & "', hphone = '" & hphone.Text & "', mphone = '" & mphone.Text & "', [level] = '" & level.Text & "', [session] = '" & session.Text & "', dob = '" & dob.Value & "', notes = '" & notes.Text & "' where sid = '" & sid.Text & "'"
sqlStr = "update tryTable SET fname = @fname, email = @email, hphone = @hphone, mphone = @mphone, [level] = @level, [session] = @session, dob = @dob, notes = @notes where sid = @sid"
Dim mySid As New OleDb.OleDbParameter
mySid.ParameterName() = "@sid"
mySid.Value = sid.Text
cmd.Parameters.Add(mySid)
Dim myFname As New OleDb.OleDbParameter
myFname.ParameterName() = "@fname"
myFname.Value = fname.Text
cmd.Parameters.Add(myFname)
Dim myLname As New OleDb.OleDbParameter
myLname.ParameterName() = "@lname"
myLname.Value = lname.Text
cmd.Parameters.Add(myLname)
Dim myEmail As New OleDb.OleDbParameter
myEmail.ParameterName() = "@email"
myEmail.Value = email.Text
cmd.Parameters.Add(myEmail)
Dim myHphone As New OleDb.OleDbParameter
myHphone.ParameterName() = "@hphone"
myHphone.Value = hphone.Text
cmd.Parameters.Add(myHphone)
Dim myMphone As New OleDb.OleDbParameter
myMphone.ParameterName() = "@hphone"
myMphone.Value = mphone.Text
cmd.Parameters.Add(myMphone)
Dim myLevel As New OleDb.OleDbParameter
myLevel.ParameterName() = "@level"
myLevel.Value = level.SelectedItem
cmd.Parameters.Add(myLevel)
Dim mySession As New OleDb.OleDbParameter
mySession.ParameterName() = "@session"
mySession.Value = session.SelectedItem
cmd.Parameters.Add(mySession)
Dim myDob As New OleDb.OleDbParameter
myDob.ParameterName() = "@dob"
myDob.Value = dob.Text
cmd.Parameters.Add(myDob)
Dim myNotes As New OleDb.OleDbParameter
myNotes.ParameterName() = "@notes"
myNotes.Value = notes.Text
cmd.Parameters.Add(myNotes)
cmd = New OleDb.OleDbCommand(sqlStr, con)
cmd.ExecuteNonQuery()
MsgBox("Data Updated")
con.Close()
End SubHowever, each time i click update button I got the following error.
An unhandled exception of type 'System.NullReferenceException' occurred in SRecord.exe
Additional information: Object reference not set to an instance of an object.
I have already tried using this code too. the concatenation.
HTML Code:
Private Sub update_Click(sender As Object, e As EventArgs) Handles btUpdate.Click
con = New System.Data.OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\VS\studentrecord\SRecord\myRecord.accdb")
con.Open()
sqlStr = "update tryTable set fname = '" & fname.Text & "', lname = '" & lname.Text & "', [email] = '" & email.Text & "', hphone = '" & hphone.Text & "', mphone = '" & mphone.Text & "', [level] = '" & level.Text & "', [session] = '" & session.Text & "', dob = '" & dob.Value & "', notes = '" & notes.Text & "' where sid = '" & sid.Text & "'"
cmd = New OleDb.OleDbCommand(sqlStr, con)
cmd.ExecuteNonQuery()
MsgBox("Data Updated")
con.Close()
End SubI can insert a new row using the same concatenation but I cannot update
HTML Code:
Private Sub btRegister_Click(sender As Object, e As EventArgs) Handles btRegister.Click
CreateStudentID()
con = New System.Data.OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\VS\studentrecord\SRecord\myRecord.accdb")
con.Open()
sqlStr = "insert into tryTable(ID, fname, lname, email, hphone, mphone, [level], [session], dob, notes) values('" & sid.Text & "', '" & fname.Text & "', '" & lname.Text & "', '" & email.Text & "', '" & hphone.Text & "', '" & mphone.Text & "', '" & level.SelectedItem & "', '" & session.SelectedItem & "', '" & dob.Value & "', '" & notes.Text & "')"
cmd = New OleDb.OleDbCommand(sqlStr, con)
cmd.ExecuteNonQuery()
MsgBox("Succesful")
End SubI have also been trying to use the parameters but I got no success so far.