Quantcast
Channel: VBForums
Viewing all articles
Browse latest Browse all 42441

Help Object reference not set to an instance of an object.

$
0
0
/ using vb.net 2010
/using m.s access database

i already finish my program and the program works perfectly by using a single table in Microsoft Access. but when i tried to add a new table and set a value accordingly.

error occured : Object reference not set to an instance of an object. NullReferenceException was unhandled.

/ form code

dssNewRow = ds.Tables("tblstudentsecond").NewRow() - error................

Code:

Imports System.Data.OleDb

Public Class Form1

    Dim inc As Integer
    Dim maxrows As Integer
    Dim picPath As String

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        get_student()
        connection()

        sql = "Select * From tblstudent"
        da = New OleDb.OleDbDataAdapter(sql, con)

        da.Fill(ds, "tblstudent")

        con.Close()

        maxrows = ds.Tables("tblstudent").Rows.Count
        inc = 0



    End Sub

    Private Sub NavigateRecords()

        On Error Resume Next

        txtid.Text = ds.Tables("tblstudent").Rows(inc).Item(0)
        txtlname.Text = ds.Tables("tblstudent").Rows(inc).Item(1)
        txtfname.Text = ds.Tables("tblstudent").Rows(inc).Item(2)
        txtmi.Text = ds.Tables("tblstudent").Rows(inc).Item(3)
        txtaddress.Text = ds.Tables("tblstudent").Rows(inc).Item(4)

        txtloanamount.Text = ds.Tables("tblstudentsecond").Rows(inc).Item(0)
        txtinterest.Text = ds.Tables("tblstudentsecond").Rows(inc).Item(1)
        txtyears.Text = ds.Tables("tblstudentsecond").Rows(inc).Item(2)
        txtmonthlypayment.Text = ds.Tables("tblstudentsecond").Rows(inc).Item(3)


        connection()
        sql = "SELECT * From tblstudent WHERE id ='" & txtid.Text & "'"
        cmd = New OleDbCommand(Sql, con)
        dr = cmd.ExecuteReader()

        If dr.Read Then
            picStudent.Image = Image.FromFile(Application.StartupPath & "\Images\" & dr("stud_pic"))
        End If

        con.Close()


    End Sub

    Private Sub btnnext_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnnext.Click
        If inc <> maxrows - 1 Then
            inc = inc + 1
            NavigateRecords()

        Else
            MsgBox("No More Records found", MsgBoxStyle.Exclamation, "Next")
        End If
    End Sub

    Private Sub btnprev_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnprev.Click
        If inc > 0 Then
            inc = inc - 1

            NavigateRecords()
        Else
            MsgBox("You hit the First Record", MsgBoxStyle.Exclamation, "Prev")
        End If
    End Sub

    Private Sub btnfirst_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnfirst.Click
        If inc <> 0 Then
            inc = 0

            NavigateRecords()
        End If
    End Sub

    Private Sub btnlast_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnlast.Click
        If inc <> maxrows - 1 Then
            inc = maxrows - 1
            NavigateRecords()
        End If
    End Sub

    Private Sub btnupdate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnupdate.Click
        Dim cb As New OleDb.OleDbCommandBuilder(da)

        '    Dim cb As SqlCommandBuilder
        '    cb = New SqlCommandBuilder(da)

        '  ds.Tables("tblstudent").Rows(inc).Item("ID") = txtid.Text
        ds.Tables("tblstudent").Rows(inc).Item("Lname") = txtlname.Text
        ds.Tables("tblstudent").Rows(inc).Item("Fname") = txtfname.Text
        ds.Tables("tblstudent").Rows(inc).Item("Mi") = txtmi.Text
        ds.Tables("tblstudent").Rows(inc).Item("Address") = txtaddress.Text

        dss.Tables("tblstudentsecond").Rows(inc).Item("LoanAmount") = txtloanamount.Text
        dss.Tables("tblstudentsecond").Rows(inc).Item("Interest") = txtinterest.Text
        dss.Tables("tblstudentsecond").Rows(inc).Item("Years") = txtyears.Text
        dss.Tables("tblstudentsecond").Rows(inc).Item("MonthlyPayment") = txtmonthlypayment.Text

        da.Update(ds, "tblstudent")
        da.Update(dss, "tblstudentsecond")
        MsgBox("Data updated")
    End Sub

    Private Sub btnaddnew_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnaddnew.Click
        btncommit.Enabled = True
        btnaddnew.Enabled = False
        btnupdate.Enabled = False
        btndelete.Enabled = False

        txtid.Clear()
        txtfname.Clear()
        txtlname.Clear()
        txtmi.Clear()
        txtaddress.Clear()
        txtloanamount.Clear()
        txtinterest.Clear()
        txtyears.Clear()
        txtmonthlypayment.Clear()
        txtid.Focus()
    End Sub

    Private Sub btncancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btncancel.Click
        btncommit.Enabled = False
        btnaddnew.Enabled = True
        btnupdate.Enabled = True
        btndelete.Enabled = True

        inc = 0
        NavigateRecords()
    End Sub
    Private Sub btncommit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btncommit.Click

        If inc <> -1 Then
            Dim cb As New OleDb.OleDbCommandBuilder(da)

            Dim picfaculty As String

            Dim FileToCopy As String
            Dim NewCopy As String

            FileToCopy = picPath
            NewCopy = Application.StartupPath & "\Images\" & lblPicName.Text

            If System.IO.File.Exists(FileToCopy) = True Then
                System.IO.File.Copy(FileToCopy, NewCopy)
                picfaculty = lblPicName.Text
            Else
                picfaculty = "pic.png"
            End If

            Dim dsNewRow, dssNewRow As DataRow

            dsNewRow = ds.Tables("tblstudent").NewRow()
            dssNewRow = ds.Tables("tblstudentsecond").NewRow()


            'ds.Tables("tblstudent").NewRow()

            dsNewRow.Item("ID") = txtid.Text
            dsNewRow.Item("Lname") = txtlname.Text
            dsNewRow.Item("Fname") = txtfname.Text
            dsNewRow.Item("Mi") = txtmi.Text
            dsNewRow.Item("Address") = txtaddress.Text

            dssNewRow.Item("LoanAmount") = txtloanamount.Text
            dssNewRow.Item("Interest") = txtinterest.Text
            dssNewRow.Item("Years") = txtyears.Text
            dssNewRow.Item("MonthlyPayment") = txtmonthlypayment.Text

            ds.Tables("tblstudent").Rows.Add(dsNewRow)
            ds.Tables("tblstudentsecond").Rows.Add(dsNewRow)
            da.Update(ds, "tblstudent")
            da.Update(dss, "tblstudentsecond")

            MsgBox("New Record added to the Database", MsgBoxStyle.Information, "Save")

            btncommit.Enabled = False
            btnaddnew.Enabled = True
            btnupdate.Enabled = True
            btndelete.Enabled = True

            get_student()

        End If

        ' da.Update(ds, "tblstudent")
    End Sub

    Private Sub btndelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btndelete.Click
        Dim cb As New OleDb.OleDbCommandBuilder(da)
        '  Dim cb As SqlCommandBuilder
        ' cb = New SqlCommandBuilder(da)

        ds.Tables("tblstudent").Rows(inc).Delete()
        maxrows = maxrows - 1
        inc = 0
        NavigateRecords()
        da.Update(ds, "tblstudent")
    End Sub

    Private Sub btnUpload_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        Dim dlg As OpenFileDialog = New OpenFileDialog()
        Dim res As DialogResult = dlg.ShowDialog()

        With dlg
            .Filter = "All Image File (*.jpg;*.bmp;*.gif;*.png)|*.jpg;*.bmp;*.gif;*.png"
            .Title = "All Image File"
        End With

        If res = Windows.Forms.DialogResult.OK Then

            Dim str As String()
            str = Split(dlg.FileName, "\")

            For Each c As String In str
                If c.EndsWith(".jpg") Or c.EndsWith(".jpeg") Or c.EndsWith(".png") Or c.EndsWith(".gif") Or c.EndsWith(".bmp") Or c.EndsWith(".JPG") Or c.EndsWith(".JPEG") Or c.EndsWith(".PNG") Or c.EndsWith(".GIF") Or c.EndsWith(".BMP") Then
                    lblPicName.Text = c
                    picPath = dlg.FileName
                    picStudent.Image = Image.FromFile(picPath)
                End If
            Next
        End If

    End Sub

    Private Sub get_student()

        Try
            lvstudent.Items.Clear()
            connection()
            sql = "SELECT * From tblstudent order by id asc"
            cmd = New OleDbCommand(sql, con)
            dr = cmd.ExecuteReader

            While dr.Read
                Dim lv As ListViewItem = lvstudent.Items.Add(dr("id"))

                With lv.SubItems
                    .Add(dr("Lname"))
                    .Add(dr("Fname"))
                    .Add(dr("Mi"))
                    .Add(dr("Address"))
                End With

            End While
            con.Close()

        Catch ex As Exception

            'MessageBox.Show(ex.ToString())
        End Try
    End Sub

    Private Sub view_student()

        connection()

        listselect = lvstudent.SelectedItems.Item(0).Text

        sql = "SELECT * From tblstudent WHERE id ='" & listselect & "'"
        cmd = New OleDbCommand(sql, con)
        dr = cmd.ExecuteReader()

        If dr.Read Then
            txtid.Text = dr("ID")
            txtlname.Text = dr("Lname")
            txtfname.Text = dr("Fname")
            txtmi.Text = dr("Mi")
            txtaddress.Text = dr("Address")
            lblPicName.Text = dr("stud_pic")

            picStudent.Image = Image.FromFile(Application.StartupPath & "\Images\" & dr("stud_pic"))

        End If
        con.Close()

    End Sub
    Private Sub lvstudent_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles lvstudent.Click
        Call view_student()
    End Sub



    Private Sub btnClose_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClose.Click
        Me.Close()

    End Sub

    Private Sub btnSearch_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSearch.Click
        Dim search As String

        search = InputBox("Please input id to search..", "Search")

        lvstudent.Items.Clear()
        connection()

        sql = "SELECT * From tblstudent where id = '" & search & "'"
        cmd = New OleDbCommand(sql, con)
        dr = cmd.ExecuteReader

        While dr.Read
            Dim lv As ListViewItem = lvstudent.Items.Add(dr("id"))

            With lv.SubItems
                .Add(dr("Lname"))
                .Add(dr("Fname"))
                .Add(dr("Mi"))
                .Add(dr("Address"))
            End With

        End While
        con.Close()

    End Sub


    Private Sub btnrefresh_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnrefresh.Click
        Call get_student()
    End Sub

    Private Sub btncalculate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btncalculate.Click
        Dim loan_am, interest_ra, payment_1 As Double
        Dim num_years As Integer

        loan_am = CDbl(txtloanamount.Text.Trim)
        interest_ra = CDbl(txtinterest.Text.Trim)
        If interest_ra > 1 Then interest_ra = interest_ra / 100

        num_years = CInt(txtyears.Text.Trim)

        payment_1 = Pmt(interest_ra / 12, num_years * 12, -1 * loan_am)

        txtmonthlypayment.Text = Format(payment_1, "P#,##0.00")
    End Sub

End Class

/modconnection

Code:

Imports System.Data.OleDb

Module modConnection
    Public sql, listselect As String
    Public ds, dss As New DataSet
    Public da As New OleDb.OleDbDataAdapter
    Public cmd As New OleDb.OleDbCommand
    Public dr As OleDb.OleDbDataReader

    Public con As New OleDb.OleDbConnection
    Public dbProvider As String
    Public dbSource As String

    Public Sub Connection()

        Try
            dbProvider = "PROVIDER=Microsoft.ACE.OLEDB.12.0;"
            dbSource = "Data Source = D:\database\tblstudent.accdb"
            con.ConnectionString = dbProvider & dbSource

            con.Open()
        Catch ex As Exception
            MsgBox(Err.Description, MsgBoxStyle.Critical, "Database Path Error")
        End Try

    End Sub
End Module

if you want to see my program here's the file link :

http://www.mediafire.com/#08pb7jtz807gl

Viewing all articles
Browse latest Browse all 42441

Trending Articles



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