sql server存储过程

阿良良木月火 2020-04-20 09:09:02
想做一个简单的商城,照着一本漏洞颇多的破书,问题太多,做到这一步实在解决不了了,问下大家
public DataTable ExactOrderSearch(int IntOrderID,int IntNF,string strName,int IntIsConfirm,int IntIsSend,int IntIsEnd)
{
//调用DBClass类的GetCommandProc方法执行存储过程,返回Sqlcommand对象
SqlCommand myCmd = dbObj.GetCommandProc("Proc_SearchOI");
//添加参数--订单号
SqlParameter orderID = new SqlParameter("@OrderID", SqlDbType.Int, 4);
orderID.Value = IntOrderID;
myCmd.Parameters.Add(orderID);
//添加参数--标志是否填写收货人姓名
SqlParameter nf = new SqlParameter("@NF", SqlDbType.Int, 4);
nf.Value = IntNF;
myCmd.Parameters.Add(nf);
//添加参数--收货人姓名
SqlParameter name = new SqlParameter("@Name", SqlDbType.VarChar, 50);
name.Value = strName;
myCmd.Parameters.Add(name);
//添加参数--是否确认
SqlParameter confirm = new SqlParameter("@IsConfirm", SqlDbType.Int, 4);
confirm.Value = IntIsConfirm;
myCmd.Parameters.Add(confirm); ;
//添加参数--是否发货
SqlParameter send = new SqlParameter("@IsSend", SqlDbType.Int, 4);
send.Value = IntIsSend;
myCmd.Parameters.Add(send);
//添加参数--是否归档
SqlParameter end = new SqlParameter("@IsEnd", SqlDbType.Int, 4);
end.Value = IntIsEnd;
myCmd.Parameters.Add(end);
//调用DBClass类的GetDataSet方法填充查询的SQL语句,返回数据集的表的集合
DataTable dsTable = dbObj.GetDataSet(myCmd, "tbOI");
return dsTable;
}
那么存储过程该怎么写呢,需不需要if exsits什么的,之所以看不到是因为表中根本没有NF这个列啊,而且收货人也不是
直接命名为Name,表中是ReceiverName,我是要按照表中改过来还是按代码来不改?
...全文
170 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Hello World, 2020-04-20
  • 打赏
  • 举报
回复
@var是变量名,不是列名,可以相同也可以不相同的
阿良良木月火 2020-04-20
  • 打赏
  • 举报
回复
引用 1 楼 Hello World,的回复:
也没说有Name或者NF这样的列啊,只是有这样的参数而已。


也许代码里写的是ReceiverName=@Name这样的呢

你得去看看存储过程的代码是什么样子的
对存储过程不了解,既然引用了那么@的不就是列名吗后面跟的还有数据类型呢跟数据列是对应的啊
阿良良木月火 2020-04-20
  • 打赏
  • 举报
回复
引用 3 楼 把分全给哥的回复:
好久不见
咦,难道你是
  • 打赏
  • 举报
回复
这些都是参数,不是列名 不用改 你直接运行,看有没有报错
把分全给哥 2020-04-20
  • 打赏
  • 举报
回复
好久不见
杀马特丶蛮牛 2020-04-20
  • 打赏
  • 举报
回复
空有几个参数,写不出来的,都不知道逻辑
Hello World, 2020-04-20
  • 打赏
  • 举报
回复
也没说有Name或者NF这样的列啊,只是有这样的参数而已。


也许代码里写的是ReceiverName=@Name这样的呢

你得去看看存储过程的代码是什么样子的
lovebaby 2020-04-20
  • 打赏
  • 举报
回复
你贴的代码,也就能知道一个存储过程的名称和几个参数,应该只有输入参数,没有输出参数。大致如下:
IF OBJECT_ID('Proc_SearchOI') IS NOT NULL
DROP PROC Proc_SearchOI
GO
CREATE PROC Proc_SearchOI
(
@OrderID INT,
@NF INT,
@Name VARCHAR(50),
@IsConfirm INT,
@IsSend INT,
@IsEnd INT
)
AS
BEGIN
	--存储过程具体代码
END
GO
具体的存储过程,还是根据你这里要实现的业务逻辑去写吧。
Hello World, 2020-04-20
  • 打赏
  • 举报
回复

引用 8 楼 阿良良木月火 的回复:
那么SqlParameter nf = new SqlParameter("@NF", SqlDbType.Int, 4);里的NF是变量,定义后实在web页面需要用的么?我没做到后面还不知道


这里已经给参数赋值了,函数返回的是DataTable,不再需要对变量再处理。
做一遍就知道了
            //添加参数--标志是否填写收货人姓名
SqlParameter nf = new SqlParameter("@NF", SqlDbType.Int, 4);
nf.Value = IntNF;
myCmd.Parameters.Add(nf);


奇点码农 2020-04-20
  • 打赏
  • 举报
回复
你这个应该是一个查询语句吧,去找一个返回数据集合的过程的demo,然后自己改一下就好了,很简单的,之前写过,现在忘了
阿良良木月火 2020-04-20
  • 打赏
  • 举报
回复
引用 7 楼 Hello World, 的回复:
@var是变量名,不是列名,可以相同也可以不相同的
那么SqlParameter nf = new SqlParameter("@NF", SqlDbType.Int, 4);里的NF是变量,定义后实在web页面需要用的么?我没做到后面还不知道

62,017

社区成员

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

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

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

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