如何将数据从数据表复制到数据库表?

时间:2018-10-21 11:30:35

标签: c# oledbconnection

我正在开发一个应用程序,其中我想用数据表中的数据创建一个表。

场景是:

  1. 用户选择一个表并将数据填充到DataTable中
  2. 基于DataTable架构,我正在临时数据库中创建一个表(该数据库可以是SQL Server,Oracle(用户定义))
  3. 创建表后,我想将数据从DataTable复制到临时表

我的代码:

using (OleDbConnection con = new OleDbConnection(localConnString))
{
    try
    {
        con.Open();

        List<string> col = new List<string>();
        StringBuilder sb = new StringBuilder();

        StringBuilder insertQuery = new StringBuilder();
        insertQuery.Append("Insert INTO " + tableName + " Values(");

        foreach (DataRow row in dtSchema.Rows)
        {
            string type = getColumnType(row.Field<object>("DataType").ToString());
            string column ="["+ row.Field<string>("ColumnName").ToString() + "] " + type;
            col.Add(column);
        }

        sb.Append(string.Join(",", col));

        string createTableQuery = "CREATE TABLE ["+tableName+"] (" + sb.ToString().Trim() + ")";

        OleDbCommand command = new OleDbCommand(createTableQuery, con);
        command.ExecuteNonQuery();
        con.Close();

        // Code to copy data from DataTable to temp table
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
}

我想使用类似SqlBulkCopy之类的东西,但是我正在使用OLEDB。

任何帮助都是可取的。

0 个答案:

没有答案