1. 程式人生 > >Ado.Net連線資料庫的兩種方式

Ado.Net連線資料庫的兩種方式

一.使用Command和DataReader物件:

(1).首先連線資料庫有兩種模式:

1.混合連線模式 該模式需要輸入登入名和密碼

程式碼如下:

string Myconnection ="server=伺服器名稱(如果是本地也可以用.來代替);database=連線的資料庫名稱;";uid=登入名;pwd=密碼";

SqlConnection conn=new SqlConnection(Myconnection);

2.Window連線模式 該模式必須將Trusted_connection=true

string Myconnection="server=伺服器名稱;database=連線的資料庫名稱;Trusted_connection=true";

SqlConnection conn=new SqlConnection(Myconnection);

(2).呼叫Connection物件的Open方法開啟連線

(3).連線資料來源(指的是連線到具體的資料庫檔案中)有兩種方式

1.通過Command物件和DataReader物件

2.通過DataSet物件和DataAdapter物件(適用於經常更改資料庫)

(4).從資料來源讀取資料 

(5).呼叫Command物件的Close方法關閉連線    

二.下面是兩種連線資料來源方法的程式碼:

(Command物件和DataReader物件)此方法需要引用using System.Data.SqlClient名稱空間

string StrSql = "server=.;database=BookDB;trusted_connection=true";
            SqlConnection conn = new SqlConnection(StrSql);
            SqlCommand com = new SqlCommand();

//封裝連線資料來源的方法
            ADOCRUDByCommend(conn, com);

//使用try catch finally catch可以將Try程式碼塊的錯誤捕捉,而且使用該方法的好處是try中的程式碼無論是否出錯都可以編譯,如果程式碼出錯catch將會顯示出錯,最後執行finally中的語句。

 try
            {
                conn.Open();

//資料庫中的CRUD(增刪查改)操作語句
                string Sqlstr = "select * from Table1";
                //string Sqlstr = "insert into Table1 values('05','005','0005','0005')";
                //string Sqlstr = "delete from Table1 where date=01";
                //string Sqlstr = "update Table1 set English='00001' where English='1' ";
                com.Connection = conn;
                com.CommandText = Sqlstr;

//例項化一個讀取資料的物件(由於DataReader是抽象類 不能直接例項化,因此要通過Command物件的ExcuteReader方法返回DataReader例項)
                SqlDataReader Mydatrder = com.ExecuteReader();

//Read()方法是用來移動記錄指標到下一行
                while (Mydatrder.Read())
                {
                    string date = Mydatrder["date"].ToString();
                    string china = Mydatrder["china"].ToString();
                    string math = Mydatrder["math"].ToString();
                    string English = Mydatrder["English"].ToString();

//將查詢結果輸出
                    Console.WriteLine("{0},{1},{2},{3}", date, china, math, English);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            finally
            {
                conn.Close();
                Console.ReadKey();
            }

(DataSet物件和DataAdapter物件)此方法需要引用using System.Data.SqlClient和
using System.Data名稱空間

 string Cstring = "server=.;database=BookDB;trusted_connection=true";
            //定義Myconn物件連線資料庫
            SqlConnection Myconn = new SqlConnection(Cstring);

//資料庫中的CRUD語句
            //string Sql = "select * from Table1 where date=01";
            //string Sql = "insert into Table1 values('06','006','0006','00006')";
            //string Sql = "update Table1 set date='07' where date='06'";
            string Sql = "delete Table1 where date='07'";
            //定義DataSet物件儲存資料
            System.Data.DataSet MyDataSet = new System.Data.DataSet();
            SqlDataAdapter MyDataAdapter = new SqlDataAdapter(Sql,Myconn);
            //呼叫Fill()方法將資料填充到DataSet中
            MyDataAdapter.Fill(MyDataSet);
            //呼叫Connection中open()開啟連線 
            Myconn.Open();

//讀取符合條件的資料
            foreach (DataTable table in MyDataSet.Tables)
            {
                foreach (DataRow row in table.Rows)
                {
                    foreach (object field in row.ItemArray)
                    {
                        Console.Write(field);
                    }
                    //相應的行處理
                    Console.WriteLine(row);
                }
                //相應的表處理
                Console.WriteLine(table);
            }
            //Console.WriteLine(MyDataSet.Tables[0].Rows[0][2]);
            Console.ReadKey();
            Myconn.Close();