Создание таблицы Microsoft Access из Windows DataGridView DataTable C # - PullRequest
1 голос
/ 28 февраля 2012

Я хотел бы знать, как я могу создать новую таблицу Microsoft Access из Windows DataGridView DataTable в C #.

  • У меня уже есть база данных.(Например, Database.mdb или .accdb)
  • Но я не создал таблицы в своем файле базы данных.
  • У меня уже есть DataGridView, который отображает данные в таблице.
  • Я хочу создать новую таблицу, точно такую ​​же, что и DataGridView.

Пожалуйста, помогите мне решить эту проблему.Я пытался создать пустую таблицу.Но большинство моих утверждений в базе данных жестко закодированы.(Например, я делаю все свои столбцы с типами данных VARCHAR.) Я очень ценю.

Большое вам спасибо.:)

Это мои коды.

public void CreateDatabaseTable(string database, string dbTableName)
    {
        OleDbConnection con;
        OleDbCommand cmd;
        string queryStr = "";

        try
        {
            con = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" + database);

            con.Open();

            queryStr = getDataGridViewHeaders().ToString();

            cmd = new OleDbCommand("CREATE TABLE " + dbTableName +
                "( [keyID] AUTOINCREMENT PRIMARY KEY NOT NULL," + queryStr + ")", con);

            cmd.ExecuteNonQuery();

            con.Close();
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.ToString());
        }
    }

public string getDataGridViewHeaders()
    {
        int colCount = dataGridView.Columns.Count;
        string headerCols = "";

        if (colCount > 0)
        {
            headerCols = "[" + dataGridView.Columns[0].HeaderText + "]" + " VARCHAR";
        }

        for (int col = 1; col < colCount; col++)
        {
            headerCols = headerCols + " , " + "[" + dataGridView.Columns[col].HeaderText + "]" + "VARCHAR";
        }

        Console.WriteLine(headerCols);
        return headerCols;
    }

1 Ответ

0 голосов
/ 07 августа 2012

В этом сообщении показан код, конкретно

Пример выдержки в VB:

' Part 2: Create one Table using OLEDB Provider 
    Dim con As New OleDb.OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source =" & databaseName)
    con.Open()
    'Get database schema
    Dim dbSchema As DataTable = con.GetOleDbSchemaTable(OleDb.OleDbSchemaGuid.Tables, New Object() {Nothing, Nothing, tableName, "TABLE"})
  con.Close()

    ' If the table exists, the count = 1
    If dbSchema.Rows.Count > 0 Then
        ' do whatever you want to do if the table exists
    Else
        'do whatever you want to do if the table does not exist
        ' e.g. create a table
        Dim cmd As New OleDb.OleDbCommand("CREATE TABLE [" + tableName + "] ([Field1] TEXT(10), [Field2] TEXT(10))", con)
        con.Open()
        cmd.ExecuteNonQuery()
        MessageBox.Show("Table Created Successfully")
        con.Close()
    End If
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...