I whant to check if a column in a database is null, If so
<pre lang="midl">dataContracteClienti.DefaultCellStyle.ForeColor = Color.Gray;
dataContracteClienti.Rows.Add(Row["ContractId"].ToString(), Convert.ToDateTime(Row["StartDate"].ToString()), Convert.ToDateTime(Row["EndDate"].ToString()), Convert.ToDecimal(Row["Total_Platit"].ToString()));
If is not null:
dataContracteClienti.Rows.Add(Row["ContractId"].ToString(), Convert.ToDateTime(Row["StartDate"].ToString()), Convert.ToDateTime(Row["EndDate"].ToString()), Convert.ToDecimal(Row["Total_Platit"].ToString()), (Convert.ToDecimal(Row["Total_Platit"].ToString()) * (Convert.ToDecimal(Row["Procent"].ToString()) / 100)) * (Convert.ToDecimal(DiferentaDePlataAzi.ToString()) + 1) + Convert.ToDecimal(Row["Total_Platit"].ToString()), ((Convert.ToDecimal(Row["Total_Platit"].ToString()) * (Convert.ToDecimal(Row["Procent"].ToString()) / 100)) * (Convert.ToDecimal(DiferentaDePlataLaTermen.ToString()) + 1)) + Convert.ToDecimal(Row["Total_Platit"].ToString()));
I try someting like this (full code):
dataContracteClienti.Rows.Clear();
Program.Connection.CommandText = "select Contracts.ContractId, Contracts.StartDate, Contracts.EndDate, Contracts.Procent, ContractItems.DeletedId AS ContracteActive, sum(ContractItems.Payment) AS Total_Platit, Now() AS DataCurenta from Contracts INNER JOIN ContractItems ON Contracts.ContractId = ContractItems.ContractId WHERE ClientID=@ClientID "
+ "GROUP BY Contracts.ContractId, Contracts.StartDate, Contracts.EndDate, Contracts.Procent, ContractItems.DeletedId ORDER BY Contracts.StartDate DESC";
Program.Connection.AddParameter("@ClientID", cboNumeClient.SelectedValue.ToString());
DataTable Table = new DataTable();
Program.Connection.FillDataTable(Table, true);
foreach (DataRow Row in Table.Rows)
{
DiferentaData DiferentaDePlataLaTermen = new DiferentaData(Convert.ToDateTime(Row["EndDate"].ToString()), Convert.ToDateTime(Row["StartDate"].ToString()));
DiferentaData DiferentaDePlataAzi = new DiferentaData(Convert.ToDateTime(Row["DataCurenta"].ToString()), Convert.ToDateTime(Row["StartDate"].ToString()));
if ( Convert.ToInt32(DiferentaDePlataAzi.ToString()) > Convert.ToInt32(DiferentaDePlataLaTermen.ToString()))
{
dataContracteClienti.DefaultCellStyle.ForeColor = Color.OrangeRed;
dataContracteClienti.DefaultCellStyle.SelectionForeColor = Color.OrangeRed;
dataContracteClienti.DefaultCellStyle.SelectionBackColor = Color.LightBlue;
}
if (Row["ContracteActive"] == DBNull.Value)
{
dataContracteClienti.Rows.Add(Row["ContractId"].ToString(), Convert.ToDateTime(Row["StartDate"].ToString()), Convert.ToDateTime(Row["EndDate"].ToString()), Convert.ToDecimal(Row["Total_Platit"].ToString()), (Convert.ToDecimal(Row["Total_Platit"].ToString()) * (Convert.ToDecimal(Row["Procent"].ToString()) / 100)) * (Convert.ToDecimal(DiferentaDePlataAzi.ToString()) + 1) + Convert.ToDecimal(Row["Total_Platit"].ToString()), ((Convert.ToDecimal(Row["Total_Platit"].ToString()) * (Convert.ToDecimal(Row["Procent"].ToString()) / 100)) * (Convert.ToDecimal(DiferentaDePlataLaTermen.ToString()) + 1)) + Convert.ToDecimal(Row["Total_Platit"].ToString()));
}
else if (String.IsNullOrEmpty(Row["ContracteActive"].ToString()))
{
dataContracteClienti.Rows.Add(Row["ContractId"].ToString(), Convert.ToDateTime(Row["StartDate"].ToString()), Convert.ToDateTime(Row["EndDate"].ToString()), Convert.ToDecimal(Row["Total_Platit"].ToString()), (Convert.ToDecimal(Row["Total_Platit"].ToString()) * (Convert.ToDecimal(Row["Procent"].ToString()) / 100)) * (Convert.ToDecimal(DiferentaDePlataAzi.ToString()) + 1) + Convert.ToDecimal(Row["Total_Platit"].ToString()), ((Convert.ToDecimal(Row["Total_Platit"].ToString()) * (Convert.ToDecimal(Row["Procent"].ToString()) / 100)) * (Convert.ToDecimal(DiferentaDePlataLaTermen.ToString()) + 1)) + Convert.ToDecimal(Row["Total_Platit"].ToString()));
}
else
{
dataContracteClienti.DefaultCellStyle.ForeColor = Color.Gray;
dataContracteClienti.Rows.Add(Row["ContractId"].ToString(), Convert.ToDateTime(Row["StartDate"].ToString()), Convert.ToDateTime(Row["EndDate"].ToString()), Convert.ToDecimal(Row["Total_Platit"].ToString()));
}
Exception from C#:
Input string was not in a correct format.Couldn't store <> in ContracteActive Column. Expected type is Int32.
If i set the row in the database to Text is OK, if is Number don't work. Must be int, because is the ID from a nother table index.