asp.net怎么实现这样执行存储过程: 'exec Proc_InsertShopCart '51','13','23','12.32'' ?

jimmyflying 2008-04-14 10:14:23
请教这么一个问题:asp.net如何传递多个值到存储过程?
我的一个存储过程想接受三个参数,但是我又不想多写代码,
原来是这样实现的:

public void AddShopCart(int P_Int_GoodsID, float P_Flt_MemberPrice, int P_Int_MemberID, float P_Flt_GoodsWeight)
{
SqlConnection myConn = dbObj.GetConnection();
SqlCommand myCmd = new SqlCommand("Proc_InsertShopCart", myConn);
myCmd.CommandType = CommandType.StoredProcedure;
//添加参数
SqlParameter GoodsID = new SqlParameter("@GoodsID", SqlDbType.BigInt, 8);
GoodsID.Value = P_Int_GoodsID;
myCmd.Parameters.Add(GoodsID);
//添加参数
SqlParameter MemberPrice = new SqlParameter("@MemberPrice", SqlDbType.Float, 8);
MemberPrice.Value = P_Flt_MemberPrice;
myCmd.Parameters.Add(MemberPrice);
//添加参数
SqlParameter MemberID = new SqlParameter("@MemberID", SqlDbType.BigInt, 8);
MemberID.Value = P_Int_MemberID;
myCmd.Parameters.Add(MemberID);
//添加参数
SqlParameter GoodsWeight = new SqlParameter("@GoodsWeight", SqlDbType.Float , 8);
GoodsWeight.Value = P_Flt_GoodsWeight;
myCmd.Parameters.Add(GoodsWeight);
//执行过程
myConn.Open();
try
{
myCmd.ExecuteNonQuery();

}
catch (Exception ex)
{
throw (ex);
}
finally
{
myCmd.Dispose();
myConn.Close();

}

这样是没有问题的,后来改成这样:
public void AddShopCart(int P_Int_GoodsID, float P_Flt_MemberPrice, int P_Int_MemberID, float P_Flt_GoodsWeight)
{


SqlConnection myConn = dbObj.GetConnection();
SqlCommand myCmd = new SqlCommand("exec Proc_InsertShopCart '"+P_Int_GoodsID+"','"+P_Flt_MemberPrice+"','"+P_Int_MemberID+"','"+P_Flt_GoodsWeight+"'", myConn);
myCmd.CommandType = CommandType.StoredProcedure;


myConn.Open();
try
{
myCmd.ExecuteNonQuery();

}
catch (Exception ex)
{
throw (ex);
}
finally
{
myCmd.Dispose();
myConn.Close();

}
}
然后执行的时候就提示:

找不到存储过程 'exec Proc_InsertShopCart '51','13','23','12.32''。
请问这是怎么回事?
...全文
97 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
二两就醉 2008-09-04
  • 打赏
  • 举报
回复

exec Proc_InsertShopCart('51','13','23','12.32');
jimmyflying 2008-04-15
  • 打赏
  • 举报
回复
Clefoo 说的正确,谢谢!刚开始学习,有很多基本的东西还是理解的不够透彻!
lzhj6999 2008-04-14
  • 打赏
  • 举报
回复
将后面的参数的单引号去掉,就行了
clefoo 2008-04-14
  • 打赏
  • 举报
回复
改成这个myCmd.CommandType = CommandType.Text,或者直接使用存储过程名。。
.net最基础的。。

62,254

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧