0

hello this code for add the auto number form the access table to the form vb but But it only works when the table contains data but when the table is empty does not work and the bill number appears a blank
Sub New()

InitializeComponent()
Try
    Dim BillNo As New DataTable
    BillNo = New DAL().selectdatatable(" Select * FROM client ")
    For i As Integer = 0 To BillNo.Rows.Count
        txtBillNo.Text = BillNo.Rows(i)(0).ToString + 1
    Next
Catch ex As Exception            
End Try
3
Contributors
7
Replies
23
Views
1 Year
Discussion Span
Last Post by Phoguez
0

Of course it won't work. An empty table will return an empty result set and so your line
txtBillNo.Text = BillNo.Rows(i)(0).ToString + 1
can't supply a value because BillNo.Rows(i)(0) doesn't exist.
If no results are returned just set the txtBillNo to whatever the first number should be. e.g. 1.

0

Thank you, but I'm still Beginner So please give example of what you want

1

You haven't explained exactly what this bill number is but, assuming you've got your table starting at 1 for the first entry, if the returned rows is zero (no records in the table) you know your first bill number is 1. Other increment by 1 as you are doing.

Dim BillNo As New DataTable
BillNo = New DAL().selectdatatable(" Select * FROM client ")
If (BillNo.Rows.Count < 1) 
    txtBillNo.Text = "1" // or whatever is relevant
Else
    For i As Integer = 0 To BillNo.Rows.Count
        txtBillNo.Text = BillNo.Rows(i)(0).ToString + 1
    Next
End IF

My VB syntax is rusty so my If loop maybe incorrect.

Votes + Comments
Loop should be [ For i As Integer = 0 To (BillNo.Rows.Count-1) ]
0

the bill no is a primary key all i want to dispaly the new number of this primary key in the form
when i make a new bill
Sub New()

    InitializeComponent()
    Try
        Dim BillNo As New DataTable
        BillNo = New DAL().selectdatatable(" Select * FROM bak_buy1 ")
        If (BillNo.Rows.Count < 1) Then
            txtBillNo.Text = "1"
        Else
            For i As Integer = 0 To BillNo.Rows.Count
                txtBillNo.Text = BillNo.Rows(i)(0).ToString + 1

            Next
        End If
    Catch ex As Exception
        '  MsgBox(ex.Message)
    End Try
    this code work but when i delete the last bill say no 5 and open the from to make a new bill the number in the form is 5 but the number in the table is 6 and he can not save the bill into the table
0

Thank you all for your cooperation
My mistake was I when using the insert into phrase did not put billno field where the fields are to be positioned so that the table was forced to accept the number on the form
Special thanks to Mr. hericles

0
'Set the Identity_Insert to ON first before attempting to insert new row.

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        cmd.Connection = cnn

        cmd.CommandText = "Set Identity_Insert Tmp_Agents ON"
        cmd.ExecuteNonQuery()

        cmd.CommandText = "INSERT INTO Tmp_Agents (AgentIdent, AgentCode)  " &
            " Values (5,'JMB')"
        cmd.ExecuteNonQuery()

End Sub
This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.