原文: http://aspalliance.com/articleViewer.aspx?aId=477&pId=-1
著者: Andrew Mooney 翻訳: 孟子 Chapter E [ソースコードをダウンロード
// テーブルが存在するかどうかを確認し、存在する場合は DataTable にレコードが存在します。
if(schemaTable.Rows.Count < 1)
sqlCmd = "テーブルの作成 " + テーブル名 + " (";
for(int i = 0;i < dataTableXml.Columns.Count;i++)
{
//列のテキスト/文字列型の長さを追加 100
sqlCmd = sqlCmd + dataTableXml.Columns[i].ColumnName.ToString() + " char(100),";
}
sqlCmd = sqlCmd .Substring(0,sqlCmd.Length - 1) + ");";
OleDbCommand oledbCmd = 新しい OleDbCommand(sqlCmd,oledbConn);
oledbCmd.ExecuteNonQuery();
XML データをデータベースに追加します
// DataTable 内の行を走査します
foreach(dataTableXml.Rows の DataRow dr)
{
string sqlCmd = "[" + テーブル名 + "] に挿入 (";
// Datatable の列を走査します
for(int i = 0;i < dataTableXml.Columns.Count;i++)
{
//カラム名を追加
sqlCmd = sqlCmd + dataTableXml.Columns[i].ColumnName.ToString() + ",";
}
sqlCmd = sqlCmd.Substring(0,sqlCmd.Length - 1) + ") 値 (";
// DataTable 列を走査します
for(int x = 0;x < dataTableXml.Columns.Count;x++)
{
//列の値を行に追加します
sqlCmd = sqlCmd + "'" + dr[x].ToString().Replace("'","''") + "',";
}
sqlCmd = sqlCmd.Substring(0,sqlCmd.Length - 1) + ");";
OleDbCommand oledbCmd = 新しい OleDbCommand(sqlCmd,oledbConn);
oledbCmd.ExecuteNonQuery();
}
注意すべき問題:
テストするときは、まずソース コードをダウンロードし、空のデータベースを作成し、変更可能なアクセス許可 Database.mdb、Database.xls を設定し、
FoxPro/dBase の空のディレクトリ接続文字列の例を作成します。
アクセス: プロバイダー = Microsoft.Jet.OLEDB.4.0; データ ソース = C:datadatabase.mdb;
Excel: プロバイダー = Microsoft.Jet.OLEDB.4.0; データ ソース = C:datadatabase.xls; 拡張プロパティ = Excel 8.0;
FoxPro/dBase: プロバイダー = Microsoft.Jet.OLEDB.4.0; データ ソース = c:data; 拡張プロパティ = dBASE IV;
SQL サーバー: プロバイダー = SQLOLEDB; 初期カタログ = データベース; ユーザー ID = sa; パスワード =;