提高系统性能和安全性

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);

 

posted @ 2017-01-07 21:03  南橘  阅读(543)  评论(0编辑  收藏  举报
蜘蛛