c# - MaskedTextBox 如果为空,则将 NULL 插入 SQL

标签 c# sql sql-server winforms maskedtextbox

我在下面得到这段代码,它关心 maskedtextbox 是否为空。如果它是空的 INSERT INTO SQL 表 __.__.____ - 只有掩码所以我相信它 INSERTS NULL 但是当我填写了 maskedtextbox。它仍然是 INSERT __.__.____ - NULL 我不知道我在哪里犯了错误,因为它通常应该插入 date被屏蔽的文本框。

此文本框的掩码是 __.__.____,如 00/00/0000

我插入此数据的数据类型是 - 日期。

代码如下:

var value2 = (object)DBNull.Value;
DateTime parsedDate2;
if (DateTime.TryParseExact(maskedTextBox2.Text, "__.__.____", null,
                           DateTimeStyles.None, out parsedDate2))
{
    value2 = parsedDate2;
}
prikaz.Parameters.AddWithValue("@odjdate", value2);

编辑:下面这段代码说:当前上下文中不存在名称“value2”

var value2 = (object)DBNull.Value;
DateTime parsedDate2;
if (DateTime.TryParseExact(maskedTextBox2.Text, "dd.MM.yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out parsedDate2))
{
    value2 = parsedDate2;
}
prikaz.Parameters.AddWithValue("@odjdate", value2);

下面的代码执行此示例:

Converting into data type date wasn't succesfull.

这是代码

if (maskedTextBox2.Text == "__.__.____")
{
    prikaz.Parameters.AddWithValue("@odjdate", null);
}
else
{
    prikaz.Parameters.AddWithValue("@odjdate",maskedTextBox2.Text);
}

最佳答案

这对我来说很好:

 var value2 = (Object)DBNull.Value;
 DateTime parsedDate2;
 if (DateTime.TryParse(maskedTextBox1 .Text, out parsedDate2))
 {
   value2 = (Object)parsedDate2;
 }
prikaz.Parameters.AddWithValue("@odjdate", value2);     

关于c# - MaskedTextBox 如果为空,则将 NULL 插入 SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18060307/

相关文章:

sql - 如何在带有值和空列的postgresql中创建临时表

SQL 查询 - 需要提高性能

c# - 删除 EF Core 1.0 RC2(以前的 EF 7 RC2)中的自动增量

c# - 如何使 DateTime 模型属性成为必需的?

c# - 如何在C#中使用C++ DLL导出的接口(interface)指针

java - SQLStateConverter.handledNonSpecificException hibernate

mysql - 在数据库中存储相关值列表的正确方法

sql - nvarchar 列大小对性能的影响

php - 将空字符串绑定(bind)到 pdo 准备查询时出现 HY104 Sql 服务器错误

c# - Serialization 中传递的数据是什么? (二进制序列化)