using System.Data; using System.Data.SqlClient; //先打開兩個類庫文件 SqlConnection con = new SqlConnection(); con.ConnectionString = "server=.;database=stu;uid=sa;pwd=sa";
連接字符串,也可以
con.ConnectionString = ConfigurationManager.ConnectionStrings["xxx"].ConnectionString;
配合在web.config中配置實現
<ConnectionStrings> <add name="xxx" connectionString="Data Source=000.000.000.000;Initial Catalog=xxx;User ID=xxx;Password=xxx; pooling=true;" providerName="System.Data.SqlClient"/> <ConnectionStrings>
然后打開連接
con.Open();
接下來根據操作不同SqlDataAdapter和SqlCommand二選其一
ado.net數據訪問有兩種方式:
1.離線--通過DataSet,然后離線增,刪,改,最后通過SqlDataAdapter解 析到數據庫中
DataSet是離線的,而SqlDataAdapter是連接DataSet和數據庫的橋梁,所有對DataSet的操作(填充,更新等)都要通過他。
即SqlDataAdapter+DataSet訪問數據庫
2.直接對數據庫操作SqlCommand (Update,Insert,Delete)
二者之間的詳細區分如下:
SqlCommand是命令,可以用它來執行SQL命令
SqlDataAdapter是數據適配器,是用於在數據源(數據庫)和數據集(DataSet)之間通訊的一組對象
SqlCommand對應DateReader
SqlDataAdapter對應DataSet
SqlCommand是C#中與Sql數據庫打交道的對象,幾乎所有的Sql數據庫操作都需要使用該對象來實現,但其功能有限,只是簡單的實現了與Sql數據庫的接口而已;
SqlDataAdapter是一個功能強大的SqL數據適配器,也用於操作Sql數據庫,但它的操作都要通過SqlCommand來實現(有一個屬性對象的類型就是SqlCommand),也就是說,可以把SqlDataAdapter看作是一個把一些特殊功能封裝了、增強了的SqlCommand
SqlCommand與ADO時代的Command一樣,SqlDataAdapter則是ADO.NET中的新事物,它配合DataSet來使用。
DataSet就像是駐留在內存中的小數據庫,在DataSet中可以有多張DataTable,這些DataTable之間可以相互關聯,就像在數據庫中表關聯一樣
SqlDataAdapter的作用就是將數據從數據庫中提取出來,放在DataSet中,當DataSet中的數據發生變化時,SqlDataAdapter再將數據庫中的數據更新,以保證數據庫中的數據和DataSet中的數據是一致的
如果只需要執行SQL語句,就沒必要用到DataAdapter ,直接用SqlCommand的Execute系列方法就可以了。
sqlDataadapter的作用是實現Dataset和DataBase之間的橋梁:比如將對DataSet的修改更新到數據庫。
SqlDataAdapter的UpdateCommand的執行機制是:
當調用SqlDataAdapter.Update()時,檢查DataSet中的所有行,然后對每一個修改過的Row執行SqlDataAdapter.UpdateCommand
也就是說如果未修改DataSet中的數據,SqlDataAdapter.UpdateCommand不會執行。
例如使用SqlDataAdapter 對象,一般就要用於填充DataSet:
con.Open(); DataSet ds = new DataSet(); try { SqlCommand cmd = new SqlCommand(sql, Connection); SqlDataAdapter sda = new SqlDataAdapter(cmd); sda.Fill(ds); } catch (Exception e) { } finally { con.Close(); }
例如SqlDataReader 對象, 用於執行對數據庫的直接一次性操作
using (SqlConnection con = new SqlConnection(s)) using (SqlCommand command = new SqlCommand("select * from xxx", con)) { con.Open(); command.Parameters.Add("@u", SqlDbType.Char).Value = uuu; SqlDataReader reader = command.ExecuteReader(); while(reader.Read()) { Console.WriteLine(reader["字段名"].toString()); ....... } }
最后關閉連接
con.Close();