当文本框值为空时,使用 C# 停止在表中插入空值日期

埃里克·姆比亚达

当文本框的值为空时,我试图停止在表中输入的默认值日期“01/01/1900”。我不需要对表单空文本框进行验证,谢谢

using (SqlConnection con = new SqlConnection(WebConfigurationManager
       .ConnectionStrings["Molecular"].ConnectionString))
{
   con.Open();

   using (SqlCommand sc = new SqlCommand(@"Insert into ClinicalFollowUp  (MBID, Diagnosis, 
          DateLastSeen, DateofDeath ) values(@MBID, Upper(@Diagnosis), 
          Convert (date, @DateLastSeen , 103), Convert (date, @DODeath, 103);", con))
   {
      sc.Parameters.AddWithValue("@MBID", txtMBID1.Text);
      sc.Parameters.AddWithValue("@Diagnosis", txtDiagnosis.Text);

      // Date  Textbox
      sc.Parameters.AddWithValue("@DateLastSeen", txtDateLastSeen.Text);

      // Date  Textbox
      sc.Parameters.AddWithValue("@DODeath", txtDateDeath.Text);
   }
   con.close();
}
伊戈尔
  1. 您应该使用在命令中发送参数
    • 正确的数据类型(不是字符串,不要在 Sql Server 中转换它们!)
    • 指定参数的数据类型
    • 在适当的地方指定参数数据类型的长度。我猜到了架构中的字符串长度,请相应地更新它。
  2. 尽早在调用堆栈中执行转换。理想情况下,您有一个日期时间选择器控件,也许这可以为您进行转换,或者如果它是 Web api,则让序列化程序将请求反序列化为适当的类型。

    const string sqlStatement = @"Insert into ClinicalFollowUp (MBID, Diagnosis, DateLastSeen, DateofDeath) VALUES(@MBID, @Diagnosis, @DateLastSeen, @DODeath);"

    using (SqlConnection con = new SqlConnection(WebConfigurationManager.ConnectionStrings["Molecular"].ConnectionString)) using (SqlCommand sc = new SqlCommand( , con)) { con.Open(); sc.Parameters.Add(new SqlParameter("@MBID", SqlDbType.VarChar, 100){Value = txtMBID1.Text}); sc.Parameters.Add(new SqlParameter("@Diagnosis", SqlDbType.VarChar, 2000){Value = txtDiagnosis.Text.ToUpper()});

    // Date  Textbox
    sc.Parameters.Add(new SqlParameter("@DateLastSeen", SqlDbType.DateTime){Value = getSqlDate(txtDateLastSeen.Text)});
    
    // Date  Textbox
    sc.Parameters.Add(new SqlParameter("@DODeath", SqlDbType.DateTime){Value = getSqlDate(txtDateDeath.Text)});
    
    
    sc.ExecuteNonQuery();
    

    }

    // TO DO - 验证文化信息 public static object getSqlDate(string dateTime) { DateTime dt; 返回 !string.IsNullOrEmpty(dateTime) && DateTime.TryParse(dateTime, CultureInfo.InvariantCulture, DateTimeStyles.None, out dt) ?(object) dt : (object) System.DBNull.Value; }

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章