快速簡單的ADO.NET sql server存儲過程調(diào)用
ADO.NET有很多值得學習的地方,這里我們主要介紹ADO.NET,包括介紹ADO.NET sql server存儲過程等方面。Disconnected類為ADO.NET框架提供了基本結(jié)構(gòu)。這個類的一個示例是DataTable類,該類的對象可以在不依賴某個數(shù)據(jù)提供程序的情況下存儲數(shù)據(jù)。Shared類構(gòu)成了數(shù)據(jù)提供程序的基類,由所有的數(shù)據(jù)提供程序共享。DataProviders類可以處理不同類型的數(shù)據(jù)源,他們用于在特定的數(shù)據(jù)庫上執(zhí)行所有的數(shù)據(jù)管理操作。例如,SqlClient數(shù)據(jù)提供程序只能處理SQLServer數(shù)據(jù)庫。
數(shù)據(jù)庫提供程序包含Connection、Command、DataAdapter和DataReader對象。在一般的ADO.NET編程中,首先要創(chuàng)建Connection對象,給它提供需要的信息,例如連接字符串。然后創(chuàng)建一個Command對象,給它提供要執(zhí)行的SQL命令的細節(jié)。這個命令可以是內(nèi)置的SQL文本命令、存儲過程或?qū)Ρ淼闹苯釉L問。如果需要,還可以為這些命令提供參數(shù)。
#T#創(chuàng)建Connection和Command對象后,就必須確定命令是否返回結(jié)果集。如果命令不返回結(jié)果集,就可以通過調(diào)用幾個Execute方法之一,執(zhí)行命令。另一方面,如果命令返回結(jié)果集,就必須確定是否要保留結(jié)果集,以備將來在不維持與數(shù)據(jù)庫的連接的情況下使用。如果要保留結(jié)果集,就必須創(chuàng)建一個DataAdapter對象,用它填充DataSet或DataTable對象。這些對象可以在斷開連接的模式下維護其中的信息。但是,如果不想保留結(jié)果集,只是要以快速方式執(zhí)行命令,就可以使用Command對象創(chuàng)建DataReader對象。DataReader對象需要與數(shù)據(jù)庫的實時連接,它是一個只向前的只讀光標。
在ADO.NET sql server里面建立一個存儲過程,如下所示
- 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
- }