Quantcast
Channel: VBForums - Visual Basic .NET
Viewing all articles
Browse latest Browse all 27349

VS 2013 MS Access SQL Update - not set to an instance

$
0
0
Hello, I am trying to update a row using the following code

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 Sub


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.

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 Sub

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

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 Sub

Please help.

I have also been trying to use the parameters but I got no success so far.

Viewing all articles
Browse latest Browse all 27349

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>