我在C#中构建递归函数来调用一组存储过程(我不想为每个存储过程构建一个调用函数)。其中一个参数是uniqueidentifier
。但是,如果我发送使用错误的类型(例如字符串)的参数,我得到一个异常:如何在调用存储过程之前将DbType.Guid验证为有效参数?
错误转换数据类型为nvarchar为uniqueidentifier
我如何检查参数被发送到存储过程是一个DbType.Guid
?
这是我的电话功能,而如果检测作业可以做之前调用存储过程,这将是最好的解决办法:
public SqlDataReader GetDataFromDB(string Cmdtext, CommandType CmdType)
{
_conString = WebConfigurationManager.ConnectionStrings["db_ConnectionString"].ConnectionString;
// Create Connection
SqlConnection con = new SqlConnection(_conString);
// Create Command
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText = Cmdtext;
cmd.CommandType = CmdType;
//// Create ADO.NET parameters
cmd.Parameters.AddWithValue("@User", _User);
if (Cmdtext == "SpecificStoredProcedure")
{
cmd.Parameters.AddWithValue("@mGUID", _mGUID);
}
//// Return DataReader
con.Open();
return cmd.ExecuteReader(CommandBehavior.CloseConnection);
}
你能不能检查,如果之前的GUID和或字符串包含' - '如果你真的要确保检查,看是否有至少4'-'?并传入'_mGUID'作为参数,并检查以及我将重构你在做GUID的位置检查或使条件检查的一部分与存储过程名称一起使用存储过程名称与其他参数一起使用.. – MethodMan