先创建Acess数据库
ADOX.CatalogClass cat = new ADOX.CatalogClass();
string strConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + 路径+ ";";
cat.Create(strConnection);
/// <summary>
/// 创建Acess数据库和表
/// </summary>
private void CreatDataBase(DataTable tableHeader, ADOX.CatalogClass cat)
{
if (Path.GetFileNameWithoutExtension(txtExport.Text) != "")
{
//创建表
TableClass tableClass = new TableClass();
tableClass.ParentCatalog = cat;
tableClass.Name = tableHeader.Rows[0][0].ToString();
//添加表头字段ID
ColumnClass col = new ColumnClass();
col.ParentCatalog = cat;
col.Name = "ID";
col.Properties["Jet OLEDB:Allow Zero Length"].Value = false;
tableClass.Columns.Append(col, DataTypeEnum.adVarChar, 50);
CreatColumn(tableHeader, cat, tableClass);
cat.Tables.Append(tableClass); //表tableClass加入数据库
tableClass = null;
}
}
/// <summary>
/// 添加其他表头字段
/// </summary>
/// <param name="tableHeader">表头</param>
/// <param name="cat">ADOX.CatalogClass</param>
/// <param name="tbl">表</param>
private void CreatColumn(DataTable tableHeader, ADOX.CatalogClass cat, TableClass tb)
{
for (int i = 0; i < tableHeader.Rows.Count; i++)
{
ColumnClass col = new ColumnClass();
col.ParentCatalog = cat;
col.Name = tableHeader.Rows[i][1].ToString();
col.Properties["Jet OLEDB:Allow Zero Length"].Value = true;
tb.Columns.Append(col, DataTypeEnum.adVarChar, 25);
}
}
记得打开服务
string openSql = "exec sp_configure 'show advanced options',1 reconfigure exec sp_configure 'Ad Hoc Distributed Queries',1 reconfigure ";
SqlCommand openCmd = new SqlCommand(openSql, conn);
openCmd.ExecuteNonQuery();
string tableDataSql = "insert into OPENROWSET('Microsoft.Jet.OLEDB.4.0', '" + txtExport.Text + "';'admin';'', " + dataTable.Rows[0][0].ToString() + ") select " + field + " from " + obj + " where " + whereSql + "";
SqlCommand cmd = new SqlCommand(tableDataSql, conn);
int num = cmd.ExecuteNonQuery();