XML資料庫一睹為快

2021-09-05 21:27:13 字數 3378 閱讀 9259

這是我正在開發的xml資料庫的乙個演示程式片段。該專案目前還不完整,會在合適的時候開源。

有關該資料庫的一些介紹,請參考

簡單地說,這是乙個用xml作為資料訪問源的資料庫設計方案。完全基於.net和xml技術,並且使用了linq的技術。我自己總結該資料庫是:xml+ 物件導向。

using system;

using system.collections.generic;

using xmldatabase;

using dataentities;

using system.linq;

);tablecustomertable = db.create("customers", new );

tableemployeetable = db.create("employees", new );

console.writeline("\t成功建立了三個表");

#endregion

#region 插入記錄

console.writeline("3:插入記錄");

//插入乙個訂單記錄

ordertable.insert(

new order()

}});

ordertable.insert(

new order()

},new orderitem()

}}});

console.writeline("\t成功插入了兩筆訂單記錄");

//插入乙個客戶記錄

customertable.insert(

new customer()

);console.writeline("\t成功插入了一筆客戶記錄");

employeetable.insert(new employee() );

console.writeline("\t成功插入了一筆員工記錄");

db.submitchanges();//只有提交了才會真正在資料庫中生效

console.writeline("\t提交了資料庫更改");

#endregion

#region 讀取記錄

//這裡的查詢就是標準的linq語法

//選擇訂單金額大於1000的訂單

console.writeline("4:資料查詢");

var query = from o in ordertable.select()

where o.orderitems.sum(d => d.quantity * d.unitprice) > 1000

select o;

foreach (var item in query)

#endregion

#region 更新記錄

console.writeline("5:更新資料");

var customer = customertable.select().where(c => c.customerid == "abcdef").singleordefault();

console.writeline("\t修改之前");

console.writeline(customer);

//進行修改

customer.companyname = "microsoft.com";

customertable.update(customer);

db.submitchanges();

console.writeline("\t修改之後");

customer = customertable.select().where(c => c.customerid == "abcdef").singleordefault();

console.writeline(customer);

#endregion

#region 刪除記錄

console.writeline("6:刪除記錄");

var order = ordertable.select().where(o => o.orderid == 10248).singleordefault();

console.writeline("\t刪除之前");

console.writeline("\t" + order);

ordertable.delete(order);

db.submitchanges();

console.writeline("\t刪除之後");

order = ordertable.select().where(o => o.orderid == 10248).singleordefault();

if (order == null)

console.writeline("\t\t該訂單已經不存在");

#endregion

#region 清空記錄

console.writeline("7:清空記錄");//相當於delete * from ...

console.writeline("\t清空之前");

var employee = employeetable.select().firstordefault();

console.writeline("\t" + employee);

employeetable.clear();

db.submitchanges();

employee = employeetable.select().firstordefault();

console.writeline("\t清空之後");

if (employee == null)

console.writeline("\t\t該員工已經不存在");

#endregion

#region 刪除**

console.writeline("8:刪除**");

console.writeline("\t刪除之前");

console.writeline("\t\t客戶表是否存在:", db.exists("customers"));

db.drop("customers");

console.writeline("\t刪除之後");

console.writeline("\t\t客戶表是否存在:", db.exists("customers"));

#endregion

}console.writeline("9:刪除資料庫");

陳希章 於 2009/8/9 18:25:07 發布在:

XML資料庫一睹為快

這是我正在開發的xml資料庫的乙個演示程式片段。該專案目前還不完整,會在合適的時候開源。有關該資料庫的一些介紹,請參考 簡單地說,這是乙個用xml作為資料訪問源的資料庫設計方案。完全基於.net和xml技術,並且使用了linq的技術。我自己總結該資料庫是 xml 物件導向。using system ...

nginx簡述一睹為快

還是 首先上概念 nginx是高效能的http和反向 的web伺服器 也提供了 imap pop3 smtp等服務 特別是 占有記憶體少 併發能力強 效能是其最重要的考量 資料為最高五萬併發數 支援熱部署 穩定 可靠 反向 三個角色 真實伺服器 伺服器 客戶端 正向 是客戶端通過配置 伺服器訪問真實...

Python 3 9正式版,新特性提前一睹為快

文章 侵刪 乙個非常優雅的特性,當我們想將兩個字典進行合併時,只需要使用操作符 a b c a b print c 輸出結果 out 不僅如此,我們還可以使用合併更新操作符 直接對原始字典進行更新 a b a b print a 輸出結果 out 這裡需要注意的是,如果兩個字典都包含相同的key,運...