首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

C# 程式化建立 SQL Server 資料庫完整教學:從連線字串到檔案配置

     編輯:關於SqlServer

開發環境與準備

  • Visual Studio .NET (C# Windows Forms 專案)
  • 參考命名空間:System、System.Data.SqlClient
  • 目標 SQL Server 執行個體需具備 CREATE DATABASE 權限

核心程式碼實作

1. 表單設計

  • 按鈕 btnCreateDatabase,Text = "Create Database"
  • 雙擊產生 Click 事件處理常式

2. 完整 Click 事件程式碼

using System;
using System.Data.SqlClient;
using System.Windows.Forms;

private void btnCreateDatabase_Click(object sender, EventArgs e) {
    string str;
    SqlConnection myConn = new SqlConnection("Server=localhost;Integrated Security=SSPI;database=master");

    str = "CREATE DATABASE MyDatabase ON PRIMARY " +
          "(NAME = MyDatabase_Data, " +
          "FILENAME = 'C:\\MyDatabaseData.mdf', " +
          "SIZE = 2MB, MAXSIZE = 10MB, FILEGROWTH = 10%) " +
          "LOG ON " +
          "(NAME = MyDatabase_Log, " +
          "FILENAME = 'C:\\MyDatabaseLog.ldf', " +
          "SIZE = 1MB, " +
          "MAXSIZE = 5MB, " +
          "FILEGROWTH = 10%)";

    SqlCommand myCommand = new SqlCommand(str, myConn);
    try {
        myConn.Open();
        myCommand.ExecuteNonQuery();
        MessageBox.Show("Database Created Successfully", "MyProgram", MessageBoxButtons.OK, MessageBoxIcon.Information);
    }
    catch (Exception ex) {
        MessageBox.Show(ex.ToString(), "MyProgram", MessageBoxButtons.OK, MessageBoxIcon.Error);
    }
    finally {
        if (myConn.State == ConnectionState.Open) myConn.Close();
    }
}

關鍵參數說明

子句參數說明
ON PRIMARYNAME邏輯檔案名稱
FILENAME實體路徑 資料夾必須預先存在
SIZE初始大小
MAXSIZE最大大小 (UNLIMITED 可無上限)
FILEGROWTH成長增量 (MB 或 %)
LOG ON同樣參數交易記錄檔配置

簡化版:使用 Model 資料庫預設值

str = "CREATE DATABASE MyDatabase"

將自動在預設資料/記錄路徑建立檔案,大小與成長遵循 model 資料庫設定。

驗證與常見錯誤

  • 執行後用伺服器總管 (Server Explorer) 重新整理確認資料庫出現
  • 目錄不存在:DirectoryNotFoundException,請先手動建立 C:\ 下對應資料夾
  • 權限不足:執行身分需為 sysadmin 或具 CREATE DATABASE 權限
  • 檔案名衝突:同名 .mdf/.ldf 已存在會報錯

進階延伸

  • 加入 COLLATE 指定排序規則
  • 使用 FILEGROUP 實現多檔案群組管理
  • 搭配 SMO (SQL Server Management Objects) 進行更豐富的伺服器管理自動化
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved