我在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