13

日時型の列がいくつかあるテーブルがあります。ストアド プロシージャを使用して値をテーブルに挿入します。ストアド プロシージャには、テーブルに挿入するために null を受け入れる変数があります。私の問題は、テーブルの日時列に null 値を挿入しようとすると、エラーがスローされることです。私のコードは次のとおりです。

    System.Data.SqlTypes.SqlDateTime getDate;
//set DateTime null
getDate = SqlDateTime.Null;

if (InsertDate.Text == "")
{
cmd1.Parameters["@InsertDate"].Value = getDate;
}
else
{
cmd1.Parameters["@InsertDate"].Value = InsertDate.Text;
}
4

11 に答える 11

16
cmd1.Parameters["@InsertDate"].Value = getDate ?? DBNull.Value;

キーは DBNull.Value です。null 可能な DateTime 変数、つまりDateTime? someVariable. null をテストし、それが使用されているかどうかをテストできますDBNull.Value(上記のように)。

于 2013-08-07T08:45:28.567 に答える
9
if (//some condition)   
{
   cmd.Parameters.AddWithValue("@dateofBirth", txtdob.text);
}
else 
{ 
   cmd.Parameters.AddWithValue("@dateofBirth", DBNull.Value); 
}
于 2014-03-25T09:29:29.693 に答える
0

使用してみてください:

if (string.IsNullOrWhiteSpace(InsertDate.Text))
{
    cmd1.Parameters["@InsertDate"].Value = getDate;
}
else
{
    cmd1.Parameters["@InsertDate"].Value = InsertDate.Text;
}
于 2013-08-07T08:56:34.963 に答える
0

ストアド プロシージャで次のようにします。

insert into table(date)
values(case when @InsertDate ='' then 
               null 
            else 
               @insertDate 
       end)
于 2013-08-07T08:43:41.050 に答える