C#連接SQL Server數據庫(二)


執行SQL語句:Command對象

1.Command對象概述

  Command對象是一個數據命令對象,主要功能是向數據庫發送查詢、更新、刪除、修改操作的SQL語句。Command對象主要有以下幾種方式。
    SqlCommand:用於向SQL Server數據庫發送SQL語句,位於System.Data.SqlClient命名空間。
    OleDbCommand:用於向使用OLEDB公開的數據庫發送SQL語句,位於System.Data.OleDb命名空間。例如,Access數據庫和MySQL數據庫都是OLEDB公開的數據庫。
    OdbcCommand:用於向ODBC公開的數據庫發送SQL語句,位於System.Data.Odbc命名空間。有些數據庫如果沒有提供相應的連接程序,則可以配置好ODBC連接后,使用OdbcCommand。
    OracleCommand:用於向Oracle數據庫發送SQL語句,位於System.Data.OracleClient命名空間。

2.設置數據源類型

  Command對象有3個重要的屬性,分別是Connection、CommandText和CommandType。Connection屬性用於設置SqlCommand使用的SqlConnection。CommandText屬性用於設置要對數據源執行的SQL語句或存儲過程。CommandType屬性用於設置指定CommandText的類型。CommandType屬性的值是CommandType枚舉值,CommandType枚舉有3個枚舉成員,分別介紹如下。
    StoredProcedure:存儲過程的名稱。
    TableDirect:表的名稱。
    Text:SQL文本命令。
  如果要設置數據源的類型,則可以通過設置CommandType屬性來實現。

3.執行SQL語句

  Command對象需要取得將要執行的SQL語句,通過調用該類提供的多種方法,向數據庫提交SQL語句。下面詳細介紹SqlCommand對象中的幾種執行SQL語句的方法。

  1.ExecuteNonQuery方法
  執行SQL語句,並返回受影響的行數,在使用SqlCommand向數據庫發送增、刪、改命令時,通常使用ExecuteNonQuery方法執行發送的SQL語句。

        private void button1_Click(object sender, EventArgs e)
        {
            string connString = "server=.;database=denglu;uid=test;pwd=test;connect timeout=5";
            SqlConnection sqlconn = new SqlConnection(connString);
            sqlconn.Open();

            SqlCommand sqlcmd = new SqlCommand();
            sqlcmd.Connection = sqlconn;
            sqlcmd.CommandText = "update Users set password=888 where username='哈哈哈'";
            sqlcmd.CommandType = CommandType.Text;

            //int i = Convert.ToInt32(sqlcmd.ExecuteNonQuery()); //ExecuteNonQuery返回受影響的行數
            //MessageBox.Show(i.ToString());
        }

  2.ExecuteReader方法
  執行SQL語句,並生成一個包含數據的SqlDataReader對象的實例。
  代碼:

        private void button1_Click(object sender, EventArgs e)
        {
            string connString = "server=.;database=denglu;uid=test;pwd=test;connect timeout=5";
            SqlConnection sqlconn = new SqlConnection(connString);
            sqlconn.Open();

            SqlCommand sqlcmd = new SqlCommand();
            sqlcmd.Connection = sqlconn;
            sqlcmd.CommandText = "select password from users";
            sqlcmd.CommandType = CommandType.Text;

            //使用ExecuteReader方法實例化一個SqlDataReader對象
            SqlDataReader sdr = sqlcmd.ExecuteReader();
            while (sdr.Read())
            {
                listView1.Items.Add(sdr[0].ToString());
            }

            sqlconn.Dispose();
            button1.Enabled = false;
        }

  界面:

   3.ExecuteScalar方法   執行SQL語句,返回結果集中的第一行的第一列    代碼: ``` SqlConnection sqlConnection; private void Form2_Load(object sender, EventArgs e) { string connString = "server=.;database=TBWRIMS;uid=test;pwd=test;connect timeout=5"; sqlConnection = new SqlConnection(connString); sqlConnection.Open(); }
    private void btn1_Click(object sender, EventArgs e)
    {
        try
        {
            if (sqlConnection.State == ConnectionState.Open || txt1.Text != "")
            {
                SqlCommand sqlCommand = new SqlCommand(); //***
                sqlCommand.Connection = sqlConnection; //設置Connection屬性
                sqlCommand.CommandText = "select count(*) from" + txt1.Text.Trim(); // 設置CommandText屬性,以及SQL語句
                sqlCommand.CommandType = CommandType.Text; //設置CommandType屬性為Text,使其只執行SQL語句

                int i = Convert.ToInt32(sqlCommand.ExecuteScalar()); //使用ExecuteScalar方法獲取指定數據表中的數據數量                   
                lab2.Text = "數據表中共有:"+ i.ToString() + "條數據";

            }
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }
&emsp;&emsp;<b>界面:</b>
<center><img src="https://img2018.cnblogs.com/blog/1849125/202001/1849125-20200131160758181-363282996.png" width="400" height="150"></center>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM