原文:
首先,將xml檔案裝載進dataset,並得到第乙個表,這個表就是我們要加入到資料庫的datatable;接下來,去除xml檔案的副檔名,檔案名字去掉擴充套件名將是我們資料庫中使用的表名。如果xml格式不準確,將會報告錯誤,源**中有xml檔案格式的例子。參見authors.xml
一旦xml裝載成功,首先檢查資料表是否有資料(rows),接下來檢查資料庫是否存在表,如果不存在就建立乙個;然後將資料從xml插入到資料庫中。
// 檢查是否有資料存在(rows)
if(datatablexml.rows.count > 0)
建立資料庫表
建立資料庫連線,得到我們要新增表的資料庫架構資訊。
// 建立資料庫連線,開啟資料庫,得到資料庫表的架構資訊
oledbconnection oledbconn = new oledbconnection(textboxoledb.text);
oledbconn.open();
datatable schematable =
oledbconn.getoledbschematable(oledbschemaguid.tables,
new object );
// 檢查表是否存在,如果存在在datatable中將有一條記錄
if(schematable.rows.count < 1)
sqlcmd = "create table " + tablename + " (";
for(int i = 0;i < datatablexml.columns.count;i++)
sqlcmd = sqlcmd .substring(0,sqlcmd.length - 1) + ");";
oledbcommand oledbcmd = new oledbcommand(sqlcmd,oledbconn);
oledbcmd.executenonquery();
新增xml資料到資料庫
// 遍歷datatable中的rows
foreach(datarow dr in datatablexml.rows)
sqlcmd = sqlcmd.substring(0,sqlcmd.length - 1) + ") values (";
// 遍歷 datatable columns
for(int x = 0;x < datatablexml.columns.count;x++)
sqlcmd = sqlcmd.substring(0,sqlcmd.length - 1) + ");";
oledbcommand oledbcmd = new oledbcommand(sqlcmd,oledbconn);
oledbcmd.executenonquery();
}連線字串例子:
access: provider=microsoft.jet.oledb.4.0;data source=c:/data/database.mdb;
excel: provider=microsoft.jet.oledb.4.0;data source=c:/data/database.xls;extended properties=excel 8.0;
foxpro/dbase: provider=microsoft.jet.oledb.4.0;data source=c:/data;extended properties=dbase iv;
sql server: provider=sqloledb; data source=localhost; initial catalog=database;user id=sa;password=;
用Xml2OleDb將XML檔案插入到資料庫
原文 xml2oledb簡介 xml是網際網路共享資料的最好的方法,xml格式的資料可以很輕鬆的整合到不同的web應用中去。但如果你想將xml檔案插入到資料庫,怎麼辦?xml2oledb將向您說明往oledb資料庫,比如sql server,access,excel,visual foxpro,fo...
用Xml2OleDb將XML檔案插入到資料庫
xml2oledb簡介 xml是網際網路共享資料的最好的方法,xml格式的資料可以很輕鬆的整合到不同的web應用中去。但如果你想將xml檔案插入到資料庫,怎麼辦?xml2oledb將向您說明往oledb資料庫,比如sql server,access,excel,visual foxpro,foxpr...
用將xml轉義為 純文字
此標記用於xml文件中,我們先來看看使用轉義符的情況。我們知道,在xml中,等字元是不能直接存入的,否則xml語法檢查時會報錯,如果想在xml中使用這些符號,必須將其轉義為實體,如 這樣才能儲存進xml文件。在使用程式讀取的時候,解析器會自動將這些實體轉換回 舉個例子 age 30 上面這種寫法會報...