I have a datatable with One ColumnName "CustomerID" with Integer DataType.
Dynamically I want to add rows to the DataTable. For that, I had created one DataRow object like:
DataTable dt = new DataTable();
DataRow DR = dt.NewRow();
DR["CustomerID"] = Convert.ToInt32(TextBox1.Text);
But if the TextBox contains empty string, it throws the error. In that case, I want to assign Null value to the CustomerID. How to do this?
A null/empty string is in the wrong format; you would need to detect that scenario and compensate:
DR["CustomerID"] = string.IsNullOrWhiteSpace(text)
? DBNull.Value : (object)Convert.ToInt32(text);
DR["CustomerID"] = !string.IsNullOrEmpty(TextBox1.Text)
? Convert.ToInt32(TextBox1.Text)
: DBNull.Value;
But you should check also that the value is a valid integer:
int value;
if(int.TryParse(TextBox1.Text, out value))
{
DR["CustomerID"] = value;
}
else
{
DR["CustomerID"] = DBNull.Value;
}
you could do it like that:
DR["CustomerID"] = string.IsNullOrEmpty(TextBox1.Text) ?
null : Convert.ToInt32(TextBox1.Text);
First of all, of course, the field needs to be set as nullable in the DB.
And then, set it to DBNull.Value
Int32 Temp = 0;
if !(Int32.TryParse(TextBox1.Text,Temp))
DR["CustomerID"] = DBNull.Value
else
DR["CustomerID"] = Temp
You need to check first
if (TextBox1.Text.Length > 0)
{
DR["CustomerID"] = Convert.ToInt32(TextBox1.Text);
}
else
{
DR["CustomerID"] = null;
}
You can use DBNull.
DR["CustomerID"] = (TextBox.Text.Length == 0) ? Convert.ToInt32(TextBox1.Text) : DBNull.Value;
if (TextBox1.Text.Trim() == String.Empty)
{
DR["CustomerID"] = null;
}
else
{
DR["CustomerID"] = Convert.ToInt32(TextBox1.Text);
}
DataTable dt = new DataTable();
DataRow DR = dt.NewRow();
if (String.IsNullOrEmpty(TextBox1.Text))
DR["CustomerID"] = DBNull.Value;
else
DR["CustomerID"] = Convert.ToInt32(TextBox1.Text);
If you declare the Integer variable as int? it is automatically boxed by the C# compiler and you are able to assign null to that variable. For example:
int? custID = null;
I hope that helps
When null
is not allowed to be inserted into DR["CustomerID"]
, you could use (int?)null
instead like this:
DR["CustomerID"] = string.IsNullOrEmpty(TextBox1.Text) ?
(int?) null : Convert.ToInt32(TextBox1.Text);