验证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
?
您可以使用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.Parse
和DateTime.TryParse
从字符串输入获取DateTime。