私は自分のコードをできるだけコンパクトにしようとしました。
Microsoft SQL Server、.NET2.0を使用する
データベースにnull値を受け入れる日付フィールドがあります
LeaseExpiry(datetime, null)
テキストボックスの値を取得して、日時に変換します。
DateTime leaseExpiry = Convert.ToDateTime(tbLeaseExpiry.Text);
INSERT_record(leaseExpiry);
私が抱えている問題は、フォームが送信され、テキストボックスが空の場合です。このエラーが返されます:
文字列が有効な日時として認識されませんでした。
テキストボックスが空の場合に行がデータベースに作成されるようにコードを設定するにはどうすればよいNULL
ですか?
変数をNULLに初期化しようとしましたが、VisualStudioでエラーが発生します
DateTime leaseExpiry = null;
null不可能な値型であるため、nullを「System.DateTime」に変換できません。
これが役立つ場合のデータアクセス層です
public string INSERT_record(DateTime leaseExpiry)
{
//Connect to the database and insert a new record
string cnn = ConfigurationManager.ConnectionStrings[connname].ConnectionString;
using (SqlConnection connection = new SqlConnection(cnn))
{
string SQL = string.Empty;
SQL = "INSERT INTO [" + dbname + "].[dbo].[" + tblAllProperties + "] ([LeaseExpiry]) VALUES (@leaseExpiry);
using (SqlCommand command = new SqlCommand(SQL, connection))
{
command.Parameters.Add("@leaseExpiry", SqlDbType.DateTime);
command.Parameters["@leaseExpiry"].Value = leaseExpiry;
}
try
{
connection.Open();
command.ExecuteNonQuery();
return "Success";
}
catch (Exception ex)
{
return ex.Message;
}
}
}
ありがとうございました