首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> ASP.NET 基礎

ASP.NET Web.config 資料庫連接字串完整設定指南 (SQL Server)

     編輯:ASP.NET 基礎

Web.config 是 ASP.NET 應用程式的核心設定檔,<connectionStrings> 區段專門管理資料庫連接資訊。本文詳細說明 SQL Server 連接字串的屬性對照、Windows/ SQL 驗證兩種模式寫法、程式碼讀取方式,以及常見錯誤排查。

Web.config 結構與連接字串區段

連接字串必須置於 <configuration> 根節點下的 <connectionStrings> 區段:


  
    
  
  
    
  

SQL Server 連接字串屬性完整對照表

屬性名稱別名說明範例值
Data SourceServer, Address, Addr資料庫伺服器位址/實例名localhost, .\SQLEXPRESS, 192.168.1.100,1433
Initial CatalogDatabase資料庫名稱MyDatabase
User IDUID, UserSQL 驗證登入帳號sa
PasswordPWDSQL 驗證密碼P@ssw0rd
Integrated SecurityTrusted_ConnectionWindows 整合驗證 (true/false/sspi)true / SSPI
MultipleActiveResultSetsMARS支援多重作用中結果集 (MARS)true
Connection TimeoutConnect Timeout連線逾時秒數 (預設 15)30
Encrypt加密連線 (Azure SQL 必須 true)true
TrustServerCertificate信任伺服器憑證 (開發環境用)true

兩種驗證模式完整範例

1. SQL Server 驗證 (帳號/密碼)


  

2. Windows 整合驗證 (信任連線)


  

3. 進階:Azure SQL Database / 加密連線

程式碼中讀取連接字串

方式一:ConfigurationManager (標準做法)

using System.Configuration;
using System.Data.SqlClient;

string connStr = ConfigurationManager.ConnectionStrings["SqlConn"].ConnectionString;

using (var conn = new SqlConnection(connStr))
using (var cmd = new SqlCommand("SELECT * FROM Products", conn))
{
    conn.Open();
    using (var reader = cmd.ExecuteReader())
    {
        while (reader.Read()) { /* 處理資料 */ }
    }
}

方式二:Entity Framework Code First (DbContext)

public class MyDbContext : DbContext
{
    public MyDbContext() : base("name=SqlConn") { } // 對應 Web.config name
    public DbSet Products { get; set; }
}

方式三:ASP.NET Core (appsettings.json 但概念相同)

// Startup.cs
services.AddDbContext(options =>
    options.UseSqlServer(Configuration.GetConnectionString("SqlConn")));

完整實作範例:GridView 繫結資料



 
// Default.aspx.cs (若不使用 SqlDataSource 控制項)
protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack) BindGrid();
}

void BindGrid()
{
    string connStr = ConfigurationManager.ConnectionStrings["SqlConn"].ConnectionString;
    using (var da = new SqlDataAdapter("SELECT * FROM publishers", connStr))
    {
        var dt = new DataTable();
        da.Fill(dt);
        GridView1.DataSource = dt;
        GridView1.DataBind();
    }
}
Web.config 產生示意圖
VS 自動產生啟用偵錯的 Web.config
方案總管 Web.config
方案總管中的 Web.config

常見問題與最佳實務

問題原因與解決
關鍵字衝突密碼含特殊字元 (;, =, 空白) 需用雙引號包裹:Password="P@ss;word"
連線逾時增加 Connection Timeout=30;檢查防火牆/埠 1433
MARS 錯誤同一連線多個 DataReader 需 MultipleActiveResultSets=True
部署安全性生產環境勿硬編碼密碼,使用 aspnet_regiis -pef 加密 connectionStrings 區段
ProviderName 遺漏必須指定 providerName="System.Data.SqlClient" 供 EF/舊版 API 正確解析

連接字串加密部署 (生產環境必做)

# 開發人員命令提示字元 (管理員身分執行)
cd /d C:\YourWebAppPath
aspnet_regiis -pef "connectionStrings" .
# 解密還原
aspnet_regiis -pdf "connectionStrings" .

加密後 Web.config 會顯示 <EncryptedData> 區塊,ASP.NET 執行階段自動解密,無需修改程式碼。

正確管理連接字串是 ASP.NET 應用程式安全與可維護性的基石,建立標準化範本並納入部署流程,能避免大量環境遷移與安全性問題。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved