0

我正在开发一个接受用户输入的应用程序,在某些情况下,将输入直接馈送到 SQL Server 存储过程(通过参数化的 SqlCommand),在其他情况下,在执行 SP 之前通过一系列转换运行该输入。

SqlCommandBuilder.DeriveParameters用来从数据库中获取参数列表,然后将这些参数的值分配为字符串。

到目前为止,我还没有找到一种方法来验证是否可以在执行 SP 之前将字符串解析为适当的 SqlDbType。我希望有类似的东西

parameter.SqlDbType.TryParse(inputValue);

但是这样的方法似乎不存在,因为 SqlDBType 只是一个枚举。到目前为止,我唯一的选择是执行 SP 并捕获抛出的任何错误,但这似乎并不能告诉我是哪个参数导致了问题,所以我的用户不开心。

我知道我可以在 SqlDbType 上使用 switch 语句并自己验证输入,但这似乎是个坏主意。

我已经尝试搜索这个问题,但相关问题似乎都围绕着将字符串解析为 SqlDbType 枚举成员,而不是实际类型。我发现的最接近的是这个,但唯一的答案是关于检查它 System.Type 是否与任何 SqlDbType 值兼容。

4

0 回答 0