快速簡(jiǎn)單的ADO.NET sql server存儲(chǔ)過(guò)程調(diào)用
ADO.NET有很多值得學(xué)習(xí)的地方,這里我們主要介紹ADO.NET,包括介紹ADO.NET sql server存儲(chǔ)過(guò)程等方面。Disconnected類為ADO.NET框架提供了基本結(jié)構(gòu)。這個(gè)類的一個(gè)示例是DataTable類,該類的對(duì)象可以在不依賴某個(gè)數(shù)據(jù)提供程序的情況下存儲(chǔ)數(shù)據(jù)。Shared類構(gòu)成了數(shù)據(jù)提供程序的基類,由所有的數(shù)據(jù)提供程序共享。DataProviders類可以處理不同類型的數(shù)據(jù)源,他們用于在特定的數(shù)據(jù)庫(kù)上執(zhí)行所有的數(shù)據(jù)管理操作。例如,SqlClient數(shù)據(jù)提供程序只能處理SQLServer數(shù)據(jù)庫(kù)。
數(shù)據(jù)庫(kù)提供程序包含Connection、Command、DataAdapter和DataReader對(duì)象。在一般的ADO.NET編程中,首先要?jiǎng)?chuàng)建Connection對(duì)象,給它提供需要的信息,例如連接字符串。然后創(chuàng)建一個(gè)Command對(duì)象,給它提供要執(zhí)行的SQL命令的細(xì)節(jié)。這個(gè)命令可以是內(nèi)置的SQL文本命令、存儲(chǔ)過(guò)程或?qū)Ρ淼闹苯釉L問(wèn)。如果需要,還可以為這些命令提供參數(shù)。
#T#創(chuàng)建Connection和Command對(duì)象后,就必須確定命令是否返回結(jié)果集。如果命令不返回結(jié)果集,就可以通過(guò)調(diào)用幾個(gè)Execute方法之一,執(zhí)行命令。另一方面,如果命令返回結(jié)果集,就必須確定是否要保留結(jié)果集,以備將來(lái)在不維持與數(shù)據(jù)庫(kù)的連接的情況下使用。如果要保留結(jié)果集,就必須創(chuàng)建一個(gè)DataAdapter對(duì)象,用它填充DataSet或DataTable對(duì)象。這些對(duì)象可以在斷開(kāi)連接的模式下維護(hù)其中的信息。但是,如果不想保留結(jié)果集,只是要以快速方式執(zhí)行命令,就可以使用Command對(duì)象創(chuàng)建DataReader對(duì)象。DataReader對(duì)象需要與數(shù)據(jù)庫(kù)的實(shí)時(shí)連接,它是一個(gè)只向前的只讀光標(biāo)。
在ADO.NET sql server里面建立一個(gè)存儲(chǔ)過(guò)程,如下所示
- CREATEPROCEDURE[dbo].[UserProcedureWithParameter]
- @usernamenvarchar(50)
- AS
- select*from[user]whereusernamelike@username
- GO
在ADO.NET sql server里面這樣的調(diào)用
- privatevoidPage_Load(objectsender,System.EventArgse)
- {
- SqlConnectioncon=newSqlConnection();
- con.ConnectionString="workstationid=OVERMIND;packetsize=4096;userid=sa;password=sa;datasource=OVERMIND;
persistsecurityinfo=False;initialcatalog=wztj";- con.Open();
- SqlCommandcm=newSqlCommand("UserProcedureWithParameter",con);
- cm.CommandType=CommandType.StoredProcedure;
- SqlParameterparameter1=newSqlParameter("@username",SqlDbType.NVarChar,50);
- parameter1.Value="%"+"aa"+"%";
- cm.Parameters.Add(parameter1);
- DataSetds=newDataSet();
- SqlDataAdapterad=newSqlDataAdapter(cm);
- ad.Fill(ds,"user");
- DataGrid1.DataSource=ds;
- DataGrid1.DataBind();
- //Putusercodetoinitializethepagehere
- }

















