using
定义:using可以用于导入命名空间,也可以释放对象占用的内存资源。
语法:
using(SqlConnection conn = new SqlConnection(connString)) { //数据库操作代码 }
using语句允许用户定义一个范围,并且总是在范围末尾处释放对象。
即使using范围内出现异常也会释放对象。
注意事项:
1.using可以主动释放的对象都需要事项IDisable接口。
2.并不是所有的代码需要使用using,只需要对那些对系统性能有重要影响的对象使用using即可。
参数化命令
参数化命令可以有效的防止sql注入。
语法:
StringBuilder sb = new StringBuilder(); sb.AppendLine("indert...."); sb.AppendLine("values"); sb.AppendLine("@参数1,..."); SqlParameter[] para = { new SqlParameter("参数1",值), ... } SqlCommand cmd = new SqlCommand(sb.ToString(), conn); cmd.Parmeters.AddRange(para); ...
用ADO.NET调用存储过程
只需要设置一下command对象的命令类型即可。
语法:
SqlCommand cmd = new SqlCommand("存储过程名称", conn); //设置命令类型 cmd.CommandType = CommandType.StoredProcedure; //添加输入参数 SqlParameter[] para = { new SqlParameter("参数1",值), ... } cmd.Parmeters.AddRange(para); ...
使用输出参数的语法:
SqlCommand cmd = new SqlCommand("存储过程名称", conn); //设置命令类型 cmd.CommandType = CommandType.StoredProcedure; //添加输入参数 SqlParameter[] para = { new SqlParameter("参数1",值), ... } //设置最后一个参数为输出参数 para[para.Length - 1].Direction = ParameterDirection.Output; cmd.Parmeters.AddRange(para); ... //使用输出参数 string ret = Convert.ToString(para[para.Length - 1].Value);