Как скопировать данные из таблицы данных в таблицу базы данных? - PullRequest
0 голосов
/ 21 октября 2018

Я работаю над приложением, в котором я хочу создать таблицу с данными из таблицы данных.

Сценарий:

  1. Пользователь выбирает таблицу, и данные заполняютсяa 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.

Любая помощь будет заметна.

...