Exception with DataTable

G

Guest

Im getting an exception:

System.FormatException: Input string was not in a correct format. at
System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
at System.String.System.IConvertible.ToInt32(IFormatProvider provider) at
System.Convert.ToInt32(Object value) at
System.Data.Common.Int32Storage.Set(Int32 record, Object value) at
System.Data.DataColumn.set_Item(Int32 record, Object value)Couldn't store
<BILLABLE TRAVEL EXPENSES> in consultantCategory Column. Expected type is
Int32.

Code:
dataTable = new DataTable("ratesTable");
dataColumn = new DataColumn();
dataColumn.ColumnName = "task";
dataColumn.DataType = System.Type.GetType("System.Int32");
dataColumn.AutoIncrement = true;
dataColumn.Caption = "Task";
dataColumn.ReadOnly = true;
dataColumn.Unique = true;
dataTable.Columns.Add(dataColumn);

DataColumn dataColumn2;
dataColumn2 = new DataColumn();
dataColumn2.DataType = System.Type.GetType("System.String");
dataColumn2.ColumnName = "consultantCategory";
dataColumn2.AutoIncrement = true;
dataColumn2.Caption = "Consultant Category";
dataColumn2.ReadOnly = true;
dataColumn2.Unique = true;
dataTable.Columns.Add(dataColumn2);

DataColumn dataColumn3;
dataColumn3 = new DataColumn();
dataColumn3.ColumnName = "rate";
dataColumn3.DataType = System.Type.GetType("System.Currency");
dataColumn3.AutoIncrement = true;
dataColumn3.Caption = "Rate";
dataColumn3.ReadOnly = true;
dataColumn3.Unique = false;
dataTable.Columns.Add(dataColumn3);

DataColumn dataColumn4;
dataColumn4 = new DataColumn();
dataColumn4.ColumnName = "hours";
dataColumn4.DataType = System.Type.GetType("System.Int32");
dataColumn4.AutoIncrement = true;
dataColumn4.Caption = "Hours";
dataColumn4.ReadOnly = true;
dataColumn4.Unique = false;
dataTable.Columns.Add(dataColumn4);

DataColumn dataColumn5;
dataColumn5 = new DataColumn();
dataColumn5.ColumnName = "subTotal";
dataColumn5.DataType = System.Type.GetType("System.Int32");
dataColumn5.AutoIncrement = true;
dataColumn5.Caption = "Sub-Total";
dataColumn5.ReadOnly = true;
dataColumn5.Unique = false;
dataTable.Columns.Add(dataColumn5);

dataRow = dataTable.NewRow();
dataRow["task"] = 1;
dataRow["consultantCategory"] = "BILLABLE TRAVEL EXPENSES";
dataRow["hours"] = 0;
dataRow["rate"] = 0;
dataRow["subTotal"] = 0;
dataTable.Rows.Add(dataRow);
dataRow = dataTable.NewRow();
dataRow["task"] = 2;
dataRow["consultantCategory"] = "UNBILLABLE TRAVEL EXPENSES";
dataRow["hours"] = 0;
dataRow["rate"] = 0;
dataRow["subTotal"] = 0;
dataTable.Rows.Add(dataRow);
dataRow = dataTable.NewRow();
dataRow["task"] = 3;
rowNo = 3;
dataRow["consultantCategory"] = "BILLABLE FREIGHT";
dataRow["hours"] = 0;
dataRow["rate"] = 0;
dataRow["subTotal"] = 0;
dataTable.Rows.Add(dataRow);

Thanks in advance.
 
G

Guest

Two quick things... from the looks of it, the exception and trace you posted
was the inner exception... the outer one was and ArgumentException that was
caused by dataColumn2.AutoIncrement being set to true, a string after all is
not exactly incrementable, so that should be false, and with it that way it
should work (or at least did on my end).

Brendan

Newbie said:
Im getting an exception:

System.FormatException: Input string was not in a correct format. at
System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
at System.String.System.IConvertible.ToInt32(IFormatProvider provider) at
System.Convert.ToInt32(Object value) at
System.Data.Common.Int32Storage.Set(Int32 record, Object value) at
System.Data.DataColumn.set_Item(Int32 record, Object value)Couldn't store
<BILLABLE TRAVEL EXPENSES> in consultantCategory Column. Expected type is
Int32.

Code:
dataTable = new DataTable("ratesTable");
dataColumn = new DataColumn();
dataColumn.ColumnName = "task";
dataColumn.DataType = System.Type.GetType("System.Int32");
dataColumn.AutoIncrement = true;
dataColumn.Caption = "Task";
dataColumn.ReadOnly = true;
dataColumn.Unique = true;
dataTable.Columns.Add(dataColumn);

DataColumn dataColumn2;
dataColumn2 = new DataColumn();
dataColumn2.DataType = System.Type.GetType("System.String");
dataColumn2.ColumnName = "consultantCategory";
dataColumn2.AutoIncrement = true;
dataColumn2.Caption = "Consultant Category";
dataColumn2.ReadOnly = true;
dataColumn2.Unique = true;
dataTable.Columns.Add(dataColumn2);

DataColumn dataColumn3;
dataColumn3 = new DataColumn();
dataColumn3.ColumnName = "rate";
dataColumn3.DataType = System.Type.GetType("System.Currency");
dataColumn3.AutoIncrement = true;
dataColumn3.Caption = "Rate";
dataColumn3.ReadOnly = true;
dataColumn3.Unique = false;
dataTable.Columns.Add(dataColumn3);

DataColumn dataColumn4;
dataColumn4 = new DataColumn();
dataColumn4.ColumnName = "hours";
dataColumn4.DataType = System.Type.GetType("System.Int32");
dataColumn4.AutoIncrement = true;
dataColumn4.Caption = "Hours";
dataColumn4.ReadOnly = true;
dataColumn4.Unique = false;
dataTable.Columns.Add(dataColumn4);

DataColumn dataColumn5;
dataColumn5 = new DataColumn();
dataColumn5.ColumnName = "subTotal";
dataColumn5.DataType = System.Type.GetType("System.Int32");
dataColumn5.AutoIncrement = true;
dataColumn5.Caption = "Sub-Total";
dataColumn5.ReadOnly = true;
dataColumn5.Unique = false;
dataTable.Columns.Add(dataColumn5);

dataRow = dataTable.NewRow();
dataRow["task"] = 1;
dataRow["consultantCategory"] = "BILLABLE TRAVEL EXPENSES";
dataRow["hours"] = 0;
dataRow["rate"] = 0;
dataRow["subTotal"] = 0;
dataTable.Rows.Add(dataRow);
dataRow = dataTable.NewRow();
dataRow["task"] = 2;
dataRow["consultantCategory"] = "UNBILLABLE TRAVEL EXPENSES";
dataRow["hours"] = 0;
dataRow["rate"] = 0;
dataRow["subTotal"] = 0;
dataTable.Rows.Add(dataRow);
dataRow = dataTable.NewRow();
dataRow["task"] = 3;
rowNo = 3;
dataRow["consultantCategory"] = "BILLABLE FREIGHT";
dataRow["hours"] = 0;
dataRow["rate"] = 0;
dataRow["subTotal"] = 0;
dataTable.Rows.Add(dataRow);

Thanks in advance.
 
G

Guest

thanks a lot, problem fixed by setting the autoincrement to false;

Brendan Grant said:
Two quick things... from the looks of it, the exception and trace you posted
was the inner exception... the outer one was and ArgumentException that was
caused by dataColumn2.AutoIncrement being set to true, a string after all is
not exactly incrementable, so that should be false, and with it that way it
should work (or at least did on my end).

Brendan

Newbie said:
Im getting an exception:

System.FormatException: Input string was not in a correct format. at
System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
at System.String.System.IConvertible.ToInt32(IFormatProvider provider) at
System.Convert.ToInt32(Object value) at
System.Data.Common.Int32Storage.Set(Int32 record, Object value) at
System.Data.DataColumn.set_Item(Int32 record, Object value)Couldn't store
<BILLABLE TRAVEL EXPENSES> in consultantCategory Column. Expected type is
Int32.

Code:
dataTable = new DataTable("ratesTable");
dataColumn = new DataColumn();
dataColumn.ColumnName = "task";
dataColumn.DataType = System.Type.GetType("System.Int32");
dataColumn.AutoIncrement = true;
dataColumn.Caption = "Task";
dataColumn.ReadOnly = true;
dataColumn.Unique = true;
dataTable.Columns.Add(dataColumn);

DataColumn dataColumn2;
dataColumn2 = new DataColumn();
dataColumn2.DataType = System.Type.GetType("System.String");
dataColumn2.ColumnName = "consultantCategory";
dataColumn2.AutoIncrement = true;
dataColumn2.Caption = "Consultant Category";
dataColumn2.ReadOnly = true;
dataColumn2.Unique = true;
dataTable.Columns.Add(dataColumn2);

DataColumn dataColumn3;
dataColumn3 = new DataColumn();
dataColumn3.ColumnName = "rate";
dataColumn3.DataType = System.Type.GetType("System.Currency");
dataColumn3.AutoIncrement = true;
dataColumn3.Caption = "Rate";
dataColumn3.ReadOnly = true;
dataColumn3.Unique = false;
dataTable.Columns.Add(dataColumn3);

DataColumn dataColumn4;
dataColumn4 = new DataColumn();
dataColumn4.ColumnName = "hours";
dataColumn4.DataType = System.Type.GetType("System.Int32");
dataColumn4.AutoIncrement = true;
dataColumn4.Caption = "Hours";
dataColumn4.ReadOnly = true;
dataColumn4.Unique = false;
dataTable.Columns.Add(dataColumn4);

DataColumn dataColumn5;
dataColumn5 = new DataColumn();
dataColumn5.ColumnName = "subTotal";
dataColumn5.DataType = System.Type.GetType("System.Int32");
dataColumn5.AutoIncrement = true;
dataColumn5.Caption = "Sub-Total";
dataColumn5.ReadOnly = true;
dataColumn5.Unique = false;
dataTable.Columns.Add(dataColumn5);

dataRow = dataTable.NewRow();
dataRow["task"] = 1;
dataRow["consultantCategory"] = "BILLABLE TRAVEL EXPENSES";
dataRow["hours"] = 0;
dataRow["rate"] = 0;
dataRow["subTotal"] = 0;
dataTable.Rows.Add(dataRow);
dataRow = dataTable.NewRow();
dataRow["task"] = 2;
dataRow["consultantCategory"] = "UNBILLABLE TRAVEL EXPENSES";
dataRow["hours"] = 0;
dataRow["rate"] = 0;
dataRow["subTotal"] = 0;
dataTable.Rows.Add(dataRow);
dataRow = dataTable.NewRow();
dataRow["task"] = 3;
rowNo = 3;
dataRow["consultantCategory"] = "BILLABLE FREIGHT";
dataRow["hours"] = 0;
dataRow["rate"] = 0;
dataRow["subTotal"] = 0;
dataTable.Rows.Add(dataRow);

Thanks in advance.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top