Do I have to manually create a recordNumber as primary key in dataset?
-
Hello, I am facing with a strange problem when I read values from a dataset table. When I make a new row entry in to datatable ("Expenses"), I assumed that it would generate the RecordNumber (Primary Key) as it has already been defined in the original database table. The record number uses auto increment (seed= 100, and AutoIncrement value = 5). However, when a make a new row entry into dataset table, it doesn't produce a new record number but -1. Do I have to manually create a RecordNumber to use in dataset table? When I tried to read from datatable and put the value into Listview, I realized that it puts explanation instead of RecordNumber into RecordNumber column in the Listview. If you know the solution, please let me know. Regards. WHERE DO I MAKE A MISTAKE?
Dim NewRow As BPRO.ExpensesRow = BPRO.Expenses.NewRow() NewRow("CategoryNumber") = CInt(Category.SelectedValue) NewRow("Currency") = Currency.SelectedItem NewRow("PaidAs") = Paidas.SelectedItem NewRow("DateRecorded") = DatePaid.Value.ToShortDateString NewRow("Explanation") = Trim(Explanation.Text) NewRow("Amount") = CDec(Amount.Text) NewRow("CreditCardNumber") = CInt(Whichcreditcard.SelectedValue) BPRO.Expenses.Rows.Add(NewRow) ExpensesTableAdapter1.Insert(CInt(Category.SelectedValue), \_ Currency.SelectedItem, \_ Paidas.SelectedItem, \_ DatePaid.Value.ToShortDateString, \_ Trim(Explanation.Text), \_ CDec(Amount.Text), \_ CInt(Whichcreditcard.SelectedValue)) LI.Text = xrow("RecordNumber") ListView1.Items.Add(LI)
What a curious mind needs to discover knowledge is noting else than a pin-hole.
-
Hello, I am facing with a strange problem when I read values from a dataset table. When I make a new row entry in to datatable ("Expenses"), I assumed that it would generate the RecordNumber (Primary Key) as it has already been defined in the original database table. The record number uses auto increment (seed= 100, and AutoIncrement value = 5). However, when a make a new row entry into dataset table, it doesn't produce a new record number but -1. Do I have to manually create a RecordNumber to use in dataset table? When I tried to read from datatable and put the value into Listview, I realized that it puts explanation instead of RecordNumber into RecordNumber column in the Listview. If you know the solution, please let me know. Regards. WHERE DO I MAKE A MISTAKE?
Dim NewRow As BPRO.ExpensesRow = BPRO.Expenses.NewRow() NewRow("CategoryNumber") = CInt(Category.SelectedValue) NewRow("Currency") = Currency.SelectedItem NewRow("PaidAs") = Paidas.SelectedItem NewRow("DateRecorded") = DatePaid.Value.ToShortDateString NewRow("Explanation") = Trim(Explanation.Text) NewRow("Amount") = CDec(Amount.Text) NewRow("CreditCardNumber") = CInt(Whichcreditcard.SelectedValue) BPRO.Expenses.Rows.Add(NewRow) ExpensesTableAdapter1.Insert(CInt(Category.SelectedValue), \_ Currency.SelectedItem, \_ Paidas.SelectedItem, \_ DatePaid.Value.ToShortDateString, \_ Trim(Explanation.Text), \_ CDec(Amount.Text), \_ CInt(Whichcreditcard.SelectedValue)) LI.Text = xrow("RecordNumber") ListView1.Items.Add(LI)
What a curious mind needs to discover knowledge is noting else than a pin-hole.
JUNEYT wrote:
it doesn't produce a new record number but -1.
New records get negative numbers because the dataset hasn't been written back to the database yet. The database always assigns the key values, not your code. Update the database with the changes being held in the dataset and your new records will get their keys will get updated with real values.
A guide to posting questions on CodeProject[^]
Dave Kreskowiak Microsoft MVP Visual Developer - Visual Basic
2006, 2007, 2008
But no longer in 2009...