微软的SqlHelper提供了一系列的方法,很值得学习,目前正在编写一个属于自己的SqlHelper类,不断完善自己的工具类库,这里就SqlCommand对象调用存储过程做一下总结,些许注意事项值得“注意”
代码截图我直接从笔记里面截来的,这上传后的分辨率有点假。。。
SqlParmeter类配置参数:
DbType:获取或设置参数的DbType
Direction:获取或设置一个值
IsNullable:获取或设置一个值
ParameterName:获取或设置SqlParameter
Size:获取或设置列中数据的最大值(以字节为单位)
SqlDbType:获取或设置参数的SqlDbType
Value:获取或设置该参数的值
通过创建SqlParameter对象,并调用Parameters的Add()或AddRange()方法,可以进行填充数据集合
例子:
string
SqlParameter[]
new
};
SqlCommand
cmd.Parameters.AddRange(para);
conn.Open();
int
使用参数化命令会增加不少代码,但是也带来很多好处:
方便以编程方式调用sql语句
全面提升运行效率(因为纯文本的SQL语(SQL硬编码方式),每次分配到的CommandText属性都要被解析,而参数化查询只需解析一次)
参数化命令能够尽力避免SQL注入
调用存储过程
1.不带输出参数:
数据库中存储过程
2.带输出参数
存储过程代码:
这里有一点注意:
Sql Server中return的值只能为整型?我起初返回字符串,在处理返回值的时候直接报异常,直接在DBMS中调用也报错,这点我还真不知道...DBA白当了
照网上的说法:存储过程可返回一个称为返回代码的整型值,以表明过程的执行状态,但对于这说法,我一般都是
return(1),return(2)来表示,而我现在的写法是return 777,这也超过错误代码的范围了,难道就不能return '777'么?好在也不影响我使用,到时候文档里面说明下,注释加上即可