程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> 關於C# >> C#連接數據庫SQL(2005)

C#連接數據庫SQL(2005)

編輯:關於C#
 

首先來總結一下進行數據庫編程的全過程,這裡用的是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();

     }

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved