[英]Get Connection String from Web.config in asp.net
我想知道從asp.net中的web.config文件獲取連接字符串的方法。
我只知道以下方式。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;
namespace Sherserve.DataAccessLayer
{
public class DBGateway
{
public static string conString;
public DBGateway()
{
conString = ConfigurationManager.ConnectionStrings["test"].ToString();
}
}
}
使用ConfigurationManager.ConnectionStrings
是唯一正確的方法,通過健全性檢查正確使用它可以有這樣的代碼:
public DBGateway()
{
ConnectionStringSettings mySetting = ConfigurationManager.ConnectionStrings["test"];
if (mySetting == null || string.IsNullOrEmpty(mySetting.ConnectionString))
throw new Exception("Fatal error: missing connecting string in web.config file");
conString = mySetting.ConnectionString;
}
如果連接字符串丟失,這將拋出有用的錯誤,而不是隱藏的“空對象”錯誤。
值得一提的是ConnectionStringSettings
類重寫了ToString()
方法:
public override string ToString()
{
return this.ConnectionString;
}
因此,這意味着使用ConfigurationManager.ConnectionStrings["test"].ToString()
與ConfigurationManager.ConnectionStrings["test"].ConnectionString
然而, ConfigurationManager.ConnectionStrings["test"].ConnectionString
仍然可以更好地執行健全性檢查,並且個人看起來更干凈使用實際屬性而不是依靠班級給予它。
以下是整個解決方案: -
string constring = System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionStringName"].ConnectionString;
SqlConnection con = new SqlConnection(constring);
DataSet ds = new DataSet();
try
{
SqlDataAdapter dataAdapter = new SqlDataAdapter(query, con);
SqlCommandBuilder commandBuilder = new SqlCommandBuilder(dataAdapter);
con.Open();
dataAdapter.Fill(ds, "table");
return ds;
}
catch (Exception ex)
{
}
finally
{
if (con.State == System.Data.ConnectionState.Open)
con.Close();
}
這是您可以將數據庫中的記錄提取到數據表中的方法。
希望這是你想要的。
我的WebAssistant類有一個方法。 我在包含我的WebAppName的appSettings上有一個鍵,請檢查以下行:
<add key="DOMAIN_NAME" value="mRizvandi.com"/>
和我的連接名稱alwyas有“DomainName”+“DBConnectionString”模板,例如:
<add name="mRizvandiDBConnectionString" connectionString=...
好的,一切都准備好了連接字符串而不傳遞任何字符串。
public static string GetDBConnectionString()
{
string retValue = "";
string domainUrl = "";
string connectionKey = "";
string dbConnectionString = "";
domainUrl = GetDomainUrl();
connectionKey = domainUrl.Substring(0, domainUrl.IndexOf(".")) + "DBConnectionString";
dbConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings[connectionKey].ToString();
retValue = dbConnectionString;
return retValue;
}
我希望會有所幫助。
以下代碼適合我。 我已經在web.config中沒有建立connectionString的情況下添加了異常
web.config中:
<configuration>
<connectionStrings>
<add name="DBConnection" connectionString="Data Source=myaddress;Initial Catalog=MyCatalog;User ID=myuser;Password=pass;Encrypt=True;TrustServerCertificate=False"
providerName="System.Data.SqlClient" />
</connectionStrings>
</configuration>
在我的連接類中:
static internal string GetSqlConnectionString(){
try {
ConnectionStringSettings mySetting = ConfigurationManager.ConnectionStrings("DataBaseConnection");
if (mySetting == null)
throw new Exception("Database connection settings have not been set in Web.config file");
return mySetting.ConnectionString;
} catch (Exception ex) {
throw;
}}
嘗試
string ConString = System.Configuration.ConfigurationManager.ConnectionStrings[ConfigurationManager.ConnectionStrings.Count -1].ConnectionString;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.