Исходный текст: http://aspalliance.com/articleViewer.aspx?aId=477&pId=-1.
Автор: Эндрю Муни Перевод: Mencius Chapter E [Загрузить исходный код]
// Проверяем, существует ли таблица, если она существует, то в DataTable будет запись
если (схемаTable.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 (DataRow dr в dataTableXml.Rows)
{
строка sqlCmd = "вставить в [" + tableName + "] (";
// Обход столбцов 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: Provider=Microsoft.Jet.OLEDB.4.0;Источник данных=C:datadatabase.xls;Расширенные свойства=Excel 8.0;
FoxPro/dBase: Provider=Microsoft.Jet.OLEDB.4.0;Источник данных=c:data;Расширенные свойства=dBASE IV;
SQL Server: Поставщик = SQLOLEDB Источник данных = локальный начальный каталог = база данных; Идентификатор пользователя = sa; Пароль =;