SQL
SQL API 是大量經驗的結晶,它大幅簡化了原本 .NET Framework 連線 SQL Server 複雜且重複的語法,重新封裝成使用起來更方便輕巧的方法
Configuration
使用 SQL 之前,如果您只需要針對單一資料庫進行連線,可以在您的 app.config
或 web.config
中添加以下項目,往後使用 SQL API 時就不需要再設定
<appSettings>
<add key="DBName" value="資料庫名稱"/>
<add key="DBHost" value="資料庫主機 IP "/>
<add key="DBAct" value="連線帳號"/>
<add key="DBPwd" value="連線密碼"/>
<add key="Storage" value="D:\Storage"/>
</appSettings>
- storage 為可選項目,會自動紀錄任何 SQL 錯誤、程式錯誤...等訊息自動記錄到該目錄中
Super simple to use
以下將示範執行一段 SQL,它將自動開啟連線並進行查詢,完成後自動關閉連線,你完全不需額外在寫其他任何語法
示範:
string sql = "select cid,cname from class where cid=@cid"; // SQL 語法,變數使用 @變數 表示
var para = new { cid = 5 }; // 指定 prepared statement (與 @變數 名稱需相同)
由於查詢了 cid
與 cname
兩個欄位的資料,定義資料模型 Model 屬性也對應相同名稱
示範:
public class ModelClass
{
public int cid { get; set; }
public string cname { get; set; }
}
使用 quickQuery()
方法會自動將查詢的資料對應到指定的 Model 中,並以陣列方式回傳
示範:
SQL db = new SQL(); // 建立 SQL API 物件
ModelClass[] data = db.quickQuery<ModelClass>(sql,para); // 開啟連線查詢並自動關閉連線
foreach (ModelClass c in data)
{
Console.WriteLine(c.cid + " " + c.cname); // 輸出
}
輸出:
5 旅行家
備註:由於在程式碼中沒有指定資料庫連線資訊,SQL API 將會以 config 檔案中的設定為主
Dynamic Data v1.20 beta
實驗性功能,使用 quickDynamicQuery
將會回傳 dynamic[]
型態的資料,你可以不需要定義 Model 承接,完全使用動態方式取用資料
SQL db = new SQL();
dynamic[] data = db.quickDynamicQuery("select * from entity");
for(int i = 0; i < data.Length; i++)
{
Trace.WriteLine((string)data[i].cname);
}
實驗性質功能,有風險:
- 資料型態都是動態,轉型上須自行承擔風險
- 動態資料在 runtime 才會執行,錯誤也只會在執行時發生,無法預期
- 動態資料取用時,可能會發生 Null Reference 的錯誤