首先我在.net類庫里調用SQL里的存儲過程,該存儲過程有兩個UniqueIdentifier類型的參數,如shiftID, classID。在存儲過程中是用在where條件后的in 條件中的,也就是說是多個shiftid或classid通過逗號隔開使用,現在我在存儲過程中定義shiftID與classID分別為nvarchar(max)。
那么在.net庫中調用的時候首先獲取該參數:
string shiftid = Tools.ToString(HttpContext.Request.Params["shiftid"]); string classid = Tools.ToString(HttpContext.Request.Params["ClassId"]);
然后加入到SQL參數集合中:
? ? ?paraList.Add(DBHelper.GetParameter("@ShiftID", SqlDbType.NVarChar, 4000, (shiftid != string.Empty ?(object)Tools.QuoteSplitString(shiftid):DBNull.Value)));
?paraList.Add(DBHelper.GetParameter("@ClassID", SqlDbType.NVarChar, 4000, (classid != string.Empty ? (Object)Tools.QuoteSplitString(classid) : DBNull.Value)));
這里的Tools.QuoteSplitString方法是一個公共方法,它主要把如2d01aaab-4c66-475f-b8c3-8f9da4d648cf,b0a067e3-dc45-442a-8e96-dc9d135f970f 轉換成“‘2d01aaab-4c66-475f-b8c3-8f9da4d648cf’,‘b0a067e3-dc45-442a-8e96-dc9d135f970f’”這種字符串類型,那么現在cmd執行SQL的時候報將字符串轉換UniqueIdentifier類型失敗,這是SQL中報的錯。
總體來說就是:使用,NET庫,調用SQl存儲過程中如何把用逗號隔開的字符串參數傳到是nvarchar類型的SQL語句中
添加回答
舉報
0/150
提交
取消