Asp.net
使用 asp.net 呼叫儲存過程
如果我在 web.config 文件中定義了連接字元串,如何從**C#**程式碼創建到 SQL 數據庫的連接(抱歉忘記指定),然後呼叫儲存過程。然後,我想最終以某種方式將此數據用作 GridView 的數據源。
以下是在 web.config 中定義連接字元串的方式:
<connectionStrings> <add name="db.Name" connectionString="Data Source=db;Initial Catalog=dbCat;User ID=userId;Password=userPass;" providerName="System.Data.SqlClient" /> </connectionStrings>db 伺服器是 Microsoft SQL 伺服器。
這是我一直在尋找的:
ConnectionStringSettings conSet = ConfigurationManager.ConnectionStrings["db.Name"]; SqlConnection con = new SqlConnection(conSet.ConnectionString);獲取數據的程式碼相當簡單。我對從 web.config 文件中的 connectionString 變數訪問它更感興趣。
如果是這樣的資源文件:
private static readonly string connString = Resource1.connString;其中 connString 是鍵的名稱。如果是
web.config文件像這樣:
private static readonly string connString = System.Configuration.ConfigurationManager.AppSettings["strConn"];其中 conn 在您的 Web 配置文件中定義。<add key="strConn" value="User ID=test;Password=test;Initial Catalog=TestDB;Data Source=NameOfServer;"/>然後呼叫儲存過程:
//connString = the string of our database app found in the resource file using (SqlConnection con = new SqlConnection(connString)) { using (SqlCommand cmd = new SqlCommand("EMPDLL_selClientByClientID", con)) { cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add("@ClientID", SqlDbType.VarChar).Value = cID; con.Open(); using (SqlDataReader reader = cmd.ExecuteReader()) { if (reader.HasRows) { if (reader.Read()) { //more code } } } } }那就是如果你在 C# 中編碼,VB.net 它的相同交易只是更冗長:),這裡有一個小範例:
Public Sub DeleteEmployee(ByVal lVID As Long) Dim conMyData As SqlConnection Dim cmdDelete As SqlCommand Try conMyData = New SqlConnection(connString) cmdDelete = New SqlCommand("delEmployee", conMyData) With cmdDelete .CommandType = CommandType.StoredProcedure 'add the parameters .Parameters.Add("@LoginID", SqlDbType.BigInt).Value = lVID 'the request conMyData.Open() 'open a connection .ExecuteNonQuery() 'execute it End With Catch ex As Exception Throw ex Finally cmdDelete = Nothing conMyData.Close() conMyData = Nothing End Try End Sub當然,您應該使用
using語句而不是try/catch/finally確保清理正在使用的資源。