为了账号安全,请及时绑定邮箱和手机立即绑定

园子里的老哥们,遇到了一个小问题,一直不得解,向老哥们请教请教

园子里的老哥们,遇到了一个小问题,一直不得解,向老哥们请教请教

守候你守候我 2018-12-06 19:21:09
首先我在.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语句中
查看完整描述

1 回答

?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

存储过程定义的参数是什么,外面的AddParameter对面的SQLDbType就要和它一样。
查看完整回答
反对 回复 2018-12-09
  • 1 回答
  • 0 关注
  • 361 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信