一個功能強大的資料庫檢視和管理工具,支援多種資料庫類型,提供 Console、Web API 和 Blazor Web 三種介面。
- 🗄️ 多資料庫支援:支援 SQL Server、MySQL、PostgreSQL 和 Oracle
- 🔌 連線管理:支援多種資料庫連線設定和測試
- 📊 資料庫瀏覽:檢視資料庫清單和資料表結構
- 💻 SQL 執行:執行各種 SQL 查詢和命令
- 📋 結果顯示:以表格形式顯示查詢結果
⚠️ 錯誤處理:友善的錯誤訊息和異常處理- 🌐 多介面支援:Console、Web API 和 Blazor Web
DbViewer/
├── src/
│ ├── Application.Contracts/ # 應用程式合約介面
│ ├── Application/ # 應用程式邏輯
│ ├── Domain/ # 領域模型
│ ├── Domain.Shared/ # 共享領域模型
│ ├── Infrastructure/ # 基礎設施層
│ ├── Common/ # 共用工具
│ └── Presentation/ # 展示層
│ ├── Console/ # Console 應用程式
│ ├── WebApi/ # Web API 專案
│ └── BlazorWeb/ # Blazor Web 專案
└── test/ # 測試專案
- .NET 9.0 SDK
- 支援的資料庫系統(SQL Server、MySQL、PostgreSQL 或 Oracle)
-
複製專案
git clone <repository-url> cd DbViewer
-
還原套件
dotnet restore
-
執行不同版本
Console 版本:
cd src/Presentation dotnet runWeb API 版本:
cd src/Presentation/WebApi dotnet run然後開啟瀏覽器訪問
https://localhost:5001/swagger查看 API 文件Blazor Web 版本:
cd src/Presentation/BlazorWeb dotnet run然後開啟瀏覽器訪問
https://localhost:5001
- 啟動應用程式後,選擇資料庫類型
- 輸入連線資訊(伺服器、使用者名稱、密碼等)
- 測試連線或直接連線到資料庫
- 執行 SQL 查詢或瀏覽資料庫結構
Web API 提供以下端點:
POST /api/database/connect- 連線到資料庫POST /api/database/disconnect- 中斷資料庫連線POST /api/database/test-connection- 測試資料庫連線GET /api/database/status- 取得連線狀態GET /api/database/databases- 取得資料庫清單POST /api/database/switch-database- 切換資料庫GET /api/database/tables- 取得資料表清單POST /api/database/execute-query- 執行 SQL 查詢
- 開啟瀏覽器訪問應用程式
- 點選「資料庫管理」頁面
- 在左側面板設定資料庫連線資訊
- 點選「測試連線」或「連線」按鈕
- 連線成功後可瀏覽資料庫和資料表清單
- 在右側面板輸入 SQL 查詢並執行
應用程式使用 appsettings.json 進行設定:
{
"Database": {
"DefaultTimeout": 30,
"MaxRetries": 3
},
"AppConfiguration": {
"ConnectionsFilePath": "connections.json",
"SettingsFilePath": "settings.json",
"HistoryFilePath": "history.txt"
}
}- SQL Server - 使用 Microsoft.Data.SqlClient
- MySQL - 使用 MySql.Data
- PostgreSQL - 使用 Npgsql
- Oracle - 使用 Oracle.ManagedDataAccess.Core
dotnet builddotnet test# Console 版本
dotnet publish src/Presentation/Presentation.csproj -c Release
# Web API 版本
dotnet publish src/Presentation/WebApi/WebApi.csproj -c Release
# Blazor Web 版本
dotnet publish src/Presentation/BlazorWeb/BlazorWeb.csproj -c Release此專案使用 MIT 授權條款。
歡迎提交 Issue 和 Pull Request 來改善此專案。