应用程序段高效调用数据库存储过程、视图等

ADO.NET命令执行方式比较

  • 使用完整的SQL语句
    Sql语句编写困难,容易出错

网络传输不安全,容易发生“注入式攻击”
执行效率低

  • 使用带参数的SQL语句
    SQL语句编写比较容易

网络传输安全
执行效率一般

  • 调用储存过程
    不需要编写SQL语句

网络传输非常安全
执行效率非常高

Snipaste_2019-05-17_20-16-17.png
Snipaste_2019-05-17_20-18-41.png

//编写带参数的Sql语句
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.Append("insert into Studeents(studentName,Gender,Birthday,StudentNO)");
stringBuilder.Append("values(@studentName,@Gender,@Birthday,@StudentNO)");
//定义参数数组
SqlParameter[] param = new SqlParameter[] {
  new SqlParameter("@studentName",studentName)
  new SqlParameter("@Gender",Gender)
  new SqlParameter("@Birthday",Birthday)
  new SqlParameter("@StudentNO",StudentNO)
};
Helper.Update(stringBuilder.ToString(), param);

public static int Update(string sql,SqlParameter[] param)
        {
            SqlConnection conn = new SqlConnection(connString);
            SqlCommand cmd = new SqlCommand(sql, conn);
            try
            {
                conn.Open();
                cmd.Parameters.AddRange(param);
                int result = cmd.ExecuteNonQuery();
                return result;
            }
            catch (Exception ex)
            {

                throw;
            }
            finally
            {
                conn.Close();
            }
        }