当前位置: 首页 > 技术分享  > 开发技术 > 数据库应用

4种C#SQL语句写法

2018/2/1 12:15:34 人评论

记录4种C#SQL语句写法,个人比较喜欢用第二种string.Format方法;(1)拼接产生SQL语句: string sql = "insert into czyb(yhm,mm,qx) values(" + txtName.Text + "," + txtPassword.Text + "," + cmbPriority.Text + ")";…

记录4种C#SQL语句写法,个人比较喜欢用第二种string.Format方法;

(1)拼接产生SQL语句:

      string sql = "insert into czyb(yhm,mm,qx) values('" + txtName.Text + "','" + txtPassword.Text + "','" + cmbPriority.Text + "')";
      OleDbCommand cmd = new OleDbCommand(sql, conn);

       这种方法写法比较复杂,且安全性低,容易遭受SQL注入攻击。

(2)用string.Format方法:

      string sql = string.Format("insert into czyb(yhm,mm,qx) values('{0}','{1}','{2}')", txtName.Text, txtPassword.Text, cmbPriority.Text);

      只是可读性优于第(1)种。

(3)用参数化SQL语句:

      string sql="insert into czyb(yhm,mm,qx) values (@yhm,@mm,@qx)";
      OleDbCommand cmd = new OleDbCommand();
      cmd.CommandText = sql;
      cmd.Parameters.AddWithValue("@yhm", txtName.Text);
      cmd.Parameters.AddWithValue("@mm", txtPassword.Text);
      cmd.Parameters.AddWithValue("@qx", cmbPriority.Text);
      cmd.Connection = conn;
      conn.Open();
      cmd.ExecuteNonQuery();

     代码结构清楚,对于不支持存储过程的数据库(如Access),推荐采用本方法。

(4)如果数据库支持存储过程(如SQL Server),可以调用存储过程执行SQL:

        SqlConnection conn = new SqlConnection(txtConn);
        SqlCommand cmd = new SqlCommand("SearchContact", conn);  //存储过程名称为SearchContact
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.Parameters.Add("@name", SqlDbType.VarChar, 50);   //传入参数
        cmd.Parameters["@name"].Value = txtName.Text.Trim();

       由于存储过程是数据库预编译的,执行效率高,推荐采用。


相关技术

  • MSSQL2016 SSMS18 闪退解决方法

    服务器最近安装MSSQL 2016,安装包中没有集成Microsoft SQL Server Management Studio。需要另外下载,官网找到SSMS-Setup-CHS.exe,选择15.0.18118.0版本。安装完后,双击桌面 Microsoft SQL Server Management Studio 18 无响应,一闪而过。使用管理员权限,问题依旧。经…

    2019/6/10 22:30:33
  • SQL Server 数据库定时自动备份

    在SQL Server中出于数据安全的考虑,所以需要定期的备份数据库。而备份数据库一般又是在凌晨时间基本没有数据库操作的时候进行,所以我们不可能要求管理员 每天守到晚上1点去备份数据库。要实现数据库的定时自动备份,最常用的方式就是使用SQL Server代理中的作业。启动S…

    2018/6/24 10:29:38
  • MSSQL游标CURSOR应用实例

    我们使用SQL语句处理数据时,可能会碰到一些需要循环遍历某个表并对其进行相应的操作(添加、修改、删除),这时我们就需要用到咱们在编程中常常用的for或foreach,但是在SQL中写循环往往显得那么吃力,翻遍网上的资料,找不到几个正确的并能执行的循环处理数据的方法,在…

    2017/12/8 8:38:13
  • SQL临时表建立,检查,删除

    SQL临时表建立,检查,删除--建立临时表CREATE TABLE #TEMP( AAA VARCHAR(20),I INT,BBB DATETIME)SELECT * FROM #TEMP--检查临时表IF …

    2015/10/22 9:58:02

共有条评论 网友评论

验证码: 看不清楚?