2016-08-17 5 views
-1

Итак, у меня есть этот кусок кода, который загружает таблицы данных в таблицу базы данных.Добавление имен столбцов из таблицы данных

public bool TableCreator(DataTable dt, string tableName) 
     { 
      using (SqlConnection con = new SqlConnection(connectionString)) 
      { 
       try 
       { 
        /*#### Method needs to include adding apropreate amount of colunm headers ####*/ 
        string colunmHeader = " (TestColunmHeader varchar(50));"; 
        //Opens connection to the DataBase 
        con.Open(); 
        //Creates a new Table in the Database 
        using (SqlCommand command = new SqlCommand("CREATE TABLE " + tableName + colunmHeader, con)) 
         command.ExecuteNonQuery(); 
        UploadConnection(dt, tableName); 
        return true; 
       } 
       catch (Exception) 
       { 
        return false; 
       } 
      } 
     } 

Это отлично работает, если я «Hard Code» имена столбцов и их количества, но мне нужна новая таблица, которая создается в базе данных, чтобы иметь одинаковое количество столбцов, как DataTable.

Я пробовал несколько вещей, но им просто не хватало знаний для этого.

+1

Возможный дубликат [Преобразование DataTable в сценарий CREATE TABLE + INSERT для SQL в C#] (http://stackoverflow.com/questions/5227306/converting-a-datatable-to-an-create-table-insert -script-for-sql-in-c-sharp) –

+0

Это показывает объемную вставку, которая у меня есть, ее создание имен столбцов в таблице данных sql на основе таблицы данных в приложении, которое мне нужно. Вот почему это было приостановлено? –

ответ

0

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

Итак, я думаю, первое, что вы должны знать, это то, как DataTables определены в контексте того, как он хранит столбцы. Быстрый просмотр документа покажет, что у вас есть свойство column. На этой странице вы можете увидеть пример того, как вы можете выполнять итерацию через каждый столбец в вашем DataTable.

Во-вторых, вы должны знать, как создать команду SQL для создания таблицы со столбцами (из которых вы, похоже, понимаете ее основы).

Так что это должно быть просто построение строки colunmHeader, содержащей все определения каждого столбца. Вы даже можете использовать этот пример документации в качестве небольшого руководства для создания указанной строки, таким образом, ваш columnHeader будет выглядеть так: «(TestColunmHeader varchar (50), TestColunmHeader1 varchar (50), TestColunmHeader2 varchar (50))» и т. Д.

+0

Может ли это быть своего рода динамическим? он изменится с таблицы данных на таблицу данных –

+0

Это можно было бы построить так, что она будет динамически создавать разные sql-таблицы данных разных размеров столбцов, учитывая, что для вашей функции «TableCreator (DataTable dt, string tableName)» каждый dt и tableName, которые вы поставляете к вашей функции четко определены и уникальны. – MMan

+0

ах круто, хорошо плохо поставил это как правильный ответ. спасибо –

Смежные вопросы