问高手简单问题,这条语句为什么这样向存储过程传递参数????

来源:百度知道 编辑: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()呢??

其实传入的是object类型在这里 程序是不知道对错的 只要这个传入的类型 在存储过程中转化没有错 就可以了 不过一般都对传入的参数进行声明,是何类型,不声明也是可以的,规范是要求和存储过程中的声明保持一致 这样不容易出错也容易维护

SqlParameter这个函数的要求 传过去后会自动转换

sqlParameter的第一个参数是要映射的参数的名字,第二个参数是对应参数的值,是object类型的,是应该直接传int型的。但是传string型也可以正常执行。
比如:
select PhoneNumber,age from Sending where ID=100 和
select PhoneNumber,age from Sending where ID='100'
都可以执行。