天天看點

C#連接配接資料庫SQL(2005)

首先來總結一下進行資料庫程式設計的全過程,這裡用的是SQL SERVER

(1) 建立SqlConnection對象以連接配接資料庫

SqlConnection mysqlconnection=new SqlConnection("Server=localhost; database=yourdatabase;uid=sa;pwd=sa");

(2) 建立SqlCommand對象

SqlCommand mysqlcommand=mysqlconnection.CreateCommand();

(3) 設定SqlCommand對象的CommandText屬性

mysqlcommand.CommandText="SELECT * FROM youydatabasetablename";

(4) 打開SqlConnection對象

mysqlconnection.open();

(5) 運作SELECT語句

SqlDataReader mysqldatareader=mysqlcommand.ExecuteReader();

本人初學,此處疑惑,還望高手解答:

此處沒有SqlDataReader mysqldatareader=new SqlDataReader();而是直接執行,可以嗎?

如果沒有new建立對象,後面的(8)mysqldatareader.Close(); 需要關閉嗎?謝謝高人解答!!!

(6) 用SqlDataReader對象讀行

mysqldatareader.Read();

(7) 顯示SqlDataReader對象中的數值

yourtextbox.Text=mysqldatareader["ID"].ToString();      //ID是你資料庫中的一項列名

(8) 關閉SqlDataReader對象

mysqldatareader.Close();

需要關閉mysqlcommand嗎  即mysqlcommand.Close() 還是因為調用了CreateCommand()方法而不需要關閉嗎?

(9) 關閉SqlConnection對象

mysqlconnection.Close();

下面把過程呈現出來.

1、在我的程式中用的是SQL,是以在程式頭前加上

     using System.Data.SqlClient;

2、在Form1中加入應有的控件,用于顯示資料.

3、申請變量

        static private int m = 1;  //顯示每條記錄

        static private int k;        //得到記錄條數

        SqlCommand mysqlcommand;

        SqlConnection mysqlconnection;

4、連接配接資料庫,注意這裡的連接配接字元串,用的是安全類型.

         try

         {           

                mysqlconnection = new SqlConnection("server=localhost;

                           Integrated Security=True;Database=myfriends");

                mysqlcommand = mysqlconnection.CreateCommand();

                                   //得到記錄條數

                mysqlcommand.CommandText = "SELECT COUNT(*) FROM Friends";

                mysqlconnection.Open();

                k = (int)mysqlcommand.ExecuteScalar();

                GetData(1);

            }

            catch (SqlException ex)

            {

                MessageBox.Show("A SqlException was thrown,Number = " +

                              ex.Number +     //錯誤号

                              ex.Message +    //錯誤描述字元串

                              ex.StackTrace); //抛出異常的類名和方法名字元串

5、如果資料庫中有多條記錄就要逐條顯示

     在逐條顯示的按鈕事件中:

            m += 1;   //下一條索引值

            if (m > k)

                MessageBox.Show("最後一條!将顯示第一條記錄!", "資訊提示");

                m = 1;

            this.hisname.Text = "";   //要顯示下條,當然先清空

            this.hissex.Text = "";

            this.hisadress.Text = "";

            this.hisbirthday.Text = "";

            GetData(m);  //顯示下第資料

6、在顯示資料中用到顯示下一條函數;

     private void GetData(int i)

    {

            mysqlcommand.CommandText = "SELECT ID,Name,Sex,"+  "birthday,address FROM Friends WHERE ID="+i;

            SqlDataReader mysqldatareader = mysqlcommand.ExecuteReader();

            mysqldatareader.Read();

            this.hisname.Text = mysqldatareader["Name"].ToString();

            this.hissex.Text = mysqldatareader["Sex"].ToString();

            this.hisadress.Text = mysqldatareader["Address"].ToString();

            this.hisbirthday.Text = mysqldatareader["Birthday"].ToString();

            mysqldatareader.Close();

     }