Texto original: http://aspalliance.com/articleViewer.aspx?aId=477&pId=-1
Autor: Andrew Mooney Tradução: Mencius Capítulo E [Baixar código-fonte
//Verifica se a tabela existe, caso exista haverá registro no DataTable
if(schemaTable.Rows.Count <1)
sqlCmd = "criar tabela" + nometabela + " (";
for(int i = 0;i < dataTableXml.Columns.Count;i++)
{
//Adiciona texto da coluna/tipo de string com comprimento 100
sqlCmd = sqlCmd + dataTableXml.Columns[i].ColumnName.ToString() + " char(100),";
}
sqlCmd = sqlCmd.Substring(0,sqlCmd.Length - 1) + ");";
OleDbCommand oledbCmd = new OleDbCommand(sqlCmd,oledbConn);
oledbCmd.ExecuteNonQuery();
Adicione dados XML ao banco de dados
// Percorra as linhas no DataTable
foreach (DataRow dr em dataTableXml.Rows)
{
string sqlCmd = "inserir em [" + nomedatabela + "] (";
//Percorre as colunas do Datatable
for(int i = 0;i < dataTableXml.Columns.Count;i++)
{
//Adiciona o nome da coluna
sqlCmd = sqlCmd + dataTableXml.Columns[i].ColumnName.ToString() + ",";
}
sqlCmd = sqlCmd.Substring(0,sqlCmd.Length - 1) + ") valores(";
//Percorre colunas de DataTable
for(int x = 0;x <dataTableXml.Columns.Count;x++)
{
//Adiciona valor da coluna à linha
sqlCmd = sqlCmd + "'" + dr[x].ToString().Replace("'","''") + "',";
}
sqlCmd = sqlCmd.Substring(0,sqlCmd.Length - 1) + ");";
OleDbCommand oledbCmd = new OleDbCommand(sqlCmd,oledbConn);
oledbCmd.ExecuteNonQuery();
}
Questões a serem observadas:
Ao testar, primeiro baixe o código-fonte, crie um banco de dados vazio, defina as permissões modificáveis Database.mdb, Database.xls e crie um
exemplo de cadeia de conexão de diretório vazio para FoxPro/dBase:
Acesso: Provider=Microsoft.Jet.OLEDB.4.0;Fonte de dados=C:datadatabase.mdb;
Excel: Provider=Microsoft.Jet.OLEDB.4.0;Fonte de dados=C:datadatabase.xls;Propriedades estendidas=Excel 8.0;
FoxPro/dBase: Provider=Microsoft.Jet.OLEDB.4.0;Fonte de dados=c:data;Propriedades estendidas=dBASE IV;
SQL Server: Provedor=SQLOLEDB Fonte de Dados=localhost=banco de dados;ID do usuário=sa;Senha=;