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();