特定の条件下でのみ表示されるテキストボックスがいくつかあるWebがあります。これらのテキストボックスはカレンダーエクステンダーにバインドされていますが、表示されない場合は常にnull文字列をデータベースに渡します。テーブル内の対応するデータ型はですdatetime
。これらのnull文字列を格納している間、それらはに変換され1/1/1900 12:00:00 AM
ます。代わりにここにnull値を保存するにはどうすればよいですか?
データ型を別のものに変更する必要がありますか?
datetime
後でいくつかの比較操作を実行する必要があるため、使用しています。
関連するコードはこちらです。
public class Asset
{
public string dbStatus { get; set; }
public string wtyEndDate { get; set; }
public string amcEndDate { get; set; }
public Asset()
{
dbStatus = default(String);
wtyEndDate = default(String);
amcEndDate = default(String);
}
}
protected void btnSaveAsset_Click(object sender, EventArgs e)
{
Asset a = new Asset();
a.wtyEndDate = txtWtyEndDate.Text;
a.amcEndDate = txtAmcEndDate.Text;
string msg = "";
if (a.dbStatus == "INSERT")
{
try
{
msg = (ab.EXE_Assets_Master(a).Rows.Count>0) ? "Record Inserted"; : "Error"
}
catch (Exception)
{
msg = "Record with this service tag already exists in the database";
}
}
}
protected DataTable _EXE_Asset_Details(Asset a)
{
Parameters.Clear();
AddParameter("@wtyEndDate", a.wtyEndDate);
AddParameter("@amcEndDate",a.amcEndDate);
AddParameter("@DBStatus", a.dbStatus);
return ExecuteDataSet("[Asset_Details]").Tables[0];
}
// Asset_Details
CREATE PROCEDURE [Asset_Details]
@wtyEndDate datetime = NULL,
@amcEndDate datetime =null,
@dbStatus nvarchar(50)
AS
IF(@DBStatus='INSERT')
BEGIN
INSERT INTO [assetsMaster]
([warrantyEndDate],[amcEndDate])
VALUES
( @wtyEndDate,@amcEndDate)
SELECT @@rowcount
END