验证SQL参数值的类型c#是否正确

本文关键字:是否 类型 SQL 参数 验证 | 更新日期: 2023-09-27 17:58:03

嗨,我正在寻找一种方法来验证我作为参数添加到SqlCommand中的字符串是否正确。这是我的代码:

string wrongType = "This is not a date";
command.Parameters.Add("@Date", SqlDbType.DateTime).Value = wrongType;

有没有办法检查wrongType是否可以转换为SqlDbType.DateTime

验证SQL参数值的类型c#是否正确

您可以使用DateTime.TryParse:

string wrongType = "This is not a date";
DateTime rightTyped;
if(DateTime.TryParse(wrongType, out rightTyped)) 
{
    command.Parameters.Add("@Date", SqlDbType.DateTime).Value = rightTyped;
}

如果获得用户输入,则必须验证输入。

试试这个:

string wrongType = "This is not a date";
DateTime date;
if(DateTime.TryParse(wrongType, out date))
{
    // staff when string converted
}

问题出在第一行:

string wrongType = "This is not a date";

如果它必须是一个日期,并且如果您的TSQL正在根据一个日期工作,那么使用日期:

DateTime rightType = ...

现在,它从来没有错。基本上,停止依赖字符串。代码的其余部分保持相似:

command.Parameters.Add("@Date", SqlDbType.DateTime).Value = rightType;

请注意,您可以使用DateTime.ParseDateTime.TryParse从字符串输入获取DateTime。