整理:SqlCommand调用存储过程(ret…

来源:互联网 发布:tpshop源码下载 编辑:程序博客网 时间:2024/05/17 08:56
微软的SqlHelper提供了一系列的方法,很值得学习,目前正在编写一个属于自己的SqlHelper类,不断完善自己的工具类库,这里就SqlCommand对象调用存储过程做一下总结,些许注意事项值得“注意”
代码截图我直接从笔记里面截来的,这上传后的分辨率有点假。。。

SqlParmeter类配置参数:

DbType:获取或设置参数的DbType

Direction:获取或设置一个值

IsNullable:获取或设置一个值

ParameterName:获取或设置SqlParameter

Size:获取或设置列中数据的最大值(以字节为单位)

SqlDbType:获取或设置参数的SqlDbType

Value:获取或设置该参数的值


通过创建SqlParameter对象,并调用ParametersAdd()AddRange()方法,可以进行填充数据集合

例子:

string sql "insert into TB_01 VALUES(@loginName,@loginPwd)";

SqlParameter[] para new new SqlParameter("@loginName",stu.Name),

new SqlParameter("@loginPwd",stu.Pwd)

};

SqlCommand cmd new SqlCommand(sql,conn);

cmd.Parameters.AddRange(para);

conn.Open();

int ret cmd.ExecuteNonQuery();



 

使用参数化命令会增加不少代码,但是也带来很多好处:

方便以编程方式调用sql语句

全面提升运行效率(因为纯文本的SQL(SQL硬编码方式),每次分配到的CommandText属性都要被解析,而参数化查询只需解析一次)

参数化命令能够尽力避免SQL注入


调用存储过程


1.不带输出参数:
整理:SqlCommand调用存储过程(return,ouput等)

数据库中存储过程
整理:SqlCommand调用存储过程(return,ouput等)

2.带输出参数

存储过程代码:
整理:SqlCommand调用存储过程(return,ouput等)

整理:SqlCommand调用存储过程(return,ouput等)


整理:SqlCommand调用存储过程(return,ouput等)

整理:SqlCommand调用存储过程(return,ouput等)

这里有一点注意:
SqlServer中return的值只能为整型?我起初返回字符串,在处理返回值的时候直接报异常,直接在DBMS中调用也报错,这点我还真不知道...DBA白当了整理:SqlCommand调用存储过程(return,ouput等)

照网上的说法:存储过程可返回一个称为返回代码的整型值,以表明过程的执行状态,但对于这说法,我一般都是
return(1),return(2)来表示,而我现在的写法是return777,这也超过错误代码的范围了,难道就不能return'777'么?好在也不影响我使用,到时候文档里面说明下,注释加上即可


原创粉丝点击