【发布时间】:2017-03-02 12:25:04
【问题描述】:
我在数据库中有一个字段是 nvarchar,它不能为空。 发生错误时,我无法显示特定消息。 在我的数据库中插入时,我尝试了两件事。 第一:
if (string.IsNullOrWhiteSpace(textBoxCity.Text))
MessageBox.Show("This cannot be empty");
else
cmd.Parameters.Add("@city", SqlDbType.NVarChar).Value = textBoxCity.Text;
秒:
try
{
if(string.IsNullOrWhiteSpace(textBoxCity.Text))
{
MessageBox.Show("Cannot be empty");
}
else
{
cmd.Parameters.Add("@city", SqlDbType.NVarChar).Value = textBoxCity.Text;
}
}
catch (Exception ex)
{
if (ex is FormatException)
{
MessageBox.Show("Cannot be empty");
return;
}
else if (ex is SqlException)
{
MessageBox.Show("Cannot be empty");
}
throw;
}
第二个给了我正确的信息,但它也给了我一个异常,它说必须声明标量。我该如何处理? 我试图给它一个 db.null,但是因为一个字段不允许空值,它给了我另一个异常,再次不是格式或 sql。你能告诉我这是什么类型的异常,或者如何我可以处理吗?
编辑:起初我有一个错误,它应该是 nvarchar sqldbtype,有 int。
【问题讨论】:
-
您可以简单地在 c# 代码中进行检查,并可以显示任何自定义消息。无需去数据库查询。
-
你是如何执行的,使用哪个命令我假设
ExecuteNonQuery还是ExecuteScalar -
你的意思是在sql部分之前只是为了检查字符串是否为空?
-
ExecuteNonQuery..这是我插入的众多列中的一列