问高手简单问题,这条语句为什么这样向存储过程传递参数????
来源:百度知道 编辑:UC知道 时间:2024/05/30 19:39:43
有个存储过程,对表Sending 执行查询操作:
select PhoneNumber,age from Sending where ID=@id;
在c#撤程序调用这个存储过程的时候,这样传递参数:
int i=100;
SqlParameter("@id", i.ToString()).....
我很奇怪,表Sending 中的ID定义为int,那么传入的id应该是int类型啊,可是为什么却传入了i.ToString()呢??
select PhoneNumber,age from Sending where ID=@id;
在c#撤程序调用这个存储过程的时候,这样传递参数:
int i=100;
SqlParameter("@id", i.ToString()).....
我很奇怪,表Sending 中的ID定义为int,那么传入的id应该是int类型啊,可是为什么却传入了i.ToString()呢??
其实传入的是object类型在这里 程序是不知道对错的 只要这个传入的类型 在存储过程中转化没有错 就可以了 不过一般都对传入的参数进行声明,是何类型,不声明也是可以的,规范是要求和存储过程中的声明保持一致 这样不容易出错也容易维护
SqlParameter这个函数的要求 传过去后会自动转换
sqlParameter的第一个参数是要映射的参数的名字,第二个参数是对应参数的值,是object类型的,是应该直接传int型的。但是传string型也可以正常执行。
比如:
select PhoneNumber,age from Sending where ID=100 和
select PhoneNumber,age from Sending where ID='100'
都可以执行。