當前位置: 首頁 > 技術分享  > 開發技術 > 數據庫應用

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

共有條評論 網友評論

驗證碼: 看不清楚?
    广东26选5开奖