Ich habe ein Textfeld und datetime wo kann ich eine ganze Zahl eingeben. Ich möchte dies in einer SQL Server-Datenbank speichern. Wenn ich nichts eingebe, würde ich NULL
speichern. Wenn jedoch das Textfeld leer bleibt, erhalte ich einen Fehler Eingabe-String hatte kein richtiges Format.Wie Einfügen von Null aus TextBox in Ganzzahl Feld
Wie kann ich das umgehen und die Null in die db?
Der Code ist wie folgt:
public void Add_ItemSeasonalPrices(string ItemCode, DateTime FromDate, DateTime ToDate, decimal WholeSaleForFirstUnit, decimal WholeSaleForSecondUnit, decimal WholeSaleForThirdUnit,
decimal HalfWholeSaleForFirstUnit, decimal HalfWholeSaleForSecondUnit, decimal HalfWholeSaleForThirdUnit,
decimal DistributorForFirstUnit, decimal DistributorForSecondUnitt)
{
DAL.DataAccessLayer DAL = new DAL.DataAccessLayer();
DAL.open();
SqlParameter[] param = new SqlParameter[22];
param[0] = new SqlParameter("@ItemCode", SqlDbType.NVarChar, 25);
param[0].Value = ItemCode;
param[1] = new SqlParameter("@FromDate", SqlDbType.DateTime);
param[1].Value = FromDate;
param[2] = new SqlParameter("@ToDate", SqlDbType.DateTime);
param[2].Value = ToDate;
param[3] = new SqlParameter("@WholeSaleForFirstUnit", SqlDbType.Decimal);
param[3].Value = WholeSaleForFirstUnit;
param[4] = new SqlParameter("@WholeSaleForSecondUnit", SqlDbType.Decimal);
param[4].Value = WholeSaleForSecondUnit;
param[5] = new SqlParameter("@WholeSaleForThirdUnit ", SqlDbType.Decimal);
param[5].Value = WholeSaleForThirdUnit;
param[6] = new SqlParameter("@HalfWholeSaleForFirstUnit", SqlDbType.Decimal);
param[6].Value = HalfWholeSaleForFirstUnit;
param[7] = new SqlParameter("@HalfWholeSaleForSecondUnit", SqlDbType.Decimal);
param[7].Value = HalfWholeSaleForSecondUnit;
param[8] = new SqlParameter("@HalfWholeSaleForThirdUnit", SqlDbType.Decimal);
param[8].Value = HalfWholeSaleForThirdUnit;
param[9] = new SqlParameter("@DistributorForFirstUnit", SqlDbType.Decimal);
param[9].Value = DistributorForFirstUnit;
param[10] = new SqlParameter("@DistributorForSecondUnit", SqlDbType.Decimal);
param[10].Value = DistributorForSecondUnit;
DAL.ExecuteCommand("Add_ItemSeasonalPrices", param);
DAL.close();
}
und diesen Kodex in btnSave
Item.Add_ItemSeasonalPrices(txt_ItemCode.Text, Convert.ToDateTime(FromDate.Text), Convert.ToDateTime(ToDate.Text), Convert.ToDecimal(txt_WholeSaleForFirstUnit.Text), Convert.ToDecimal(txt_WholeSaleForSecondUnit.Text),
Convert.ToDecimal(txt_WholeSaleForThirdUnit.Text), Convert.ToDecimal(txt_HalfWholeSaleForFirstUnit.Text),
Convert.ToDecimal(txt_HalfWholeSaleForSecondUnit.Text), Convert.ToDecimal(txt_HalfWholeSaleForThirdUnit.Text),
Convert.ToDecimal(txt_DistributorForFirstUnit.Text), Convert.ToDecimal(txt_DistributorForSecondUnit.Text));
und diese Tabelle
CREATE TABLE [dbo].[ItemSeasonalPrices](
[ItemCode] [nvarchar](25) NOT NULL,
[FromDate] [date] NULL,
[ToDate] [date] NULL,
[WholeSaleForFirstUnit] [decimal](18, 3) NULL,
[WholeSaleForSecondUnit] [decimal](18, 3) NULL,
[WholeSaleForThirdUnit] [decimal](18, 3) NULL,
[HalfWholeSaleForFirstUnit] [decimal](18, 3) NULL,
[HalfWholeSaleForSecondUnit] [decimal](18, 3) NULL,
[HalfWholeSaleForThirdUnit] [decimal](18, 3) NULL,
[DistributorForFirstUnit] [decimal](18, 3) NULL,
[DistributorForSecondUnit] [decimal](18, 3) NULL,
[DistributorForThirdUnit] [decimal](18, 3) NULL,
[ExportForFirstUnit] [decimal](18, 3) NULL,
[ExportForSecondUnit] [decimal](18, 3) NULL,
[ExportForThirdUnit] [decimal](18, 3) NULL,
[RetailForFirstUnit] [decimal](18, 3) NULL,
[RetailForSecondUnit] [decimal](18, 3) NULL,
[RetailForThirdUnit] [decimal](18, 3) NULL,
[EndUserForFirstUnit] [decimal](18, 3) NULL,
[EndUserForSecondUnit] [decimal](18, 3) NULL,
[EndUserForThirdUnit] [decimal](18, 3) NULL,
[PriceDefault] [int] NULL
) ON [PRIMARY]
können Sie Attribut Validation verwenden –
Sie sollten Ihren Code vereinfachen und zu dem Punkt sein. Viele Menschen werden sich nicht die Mühe machen, all diesen Code zu lesen. – FLICKER