2016-08-17 14 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; 
       } 
      } 
     } 

場合、私は「ハードコード」のカラム名と金額これは素晴らしい作品が、私はのdataTableと列の同じ量を持っているために、データベース内に作成の新しいテーブルを必要としています。

私はいくつかのことを試みましたが、これを行うための知識が不足しています。

+1

[C#のSQL用にDataTableをCREATE TABLE + INSERTスクリプトに変換する](http://stackoverflow.com/questions/5227306/converting-a-datatable-to-an-create-table-insert) -script-for-sql-in-c-sharp) –

+0

これは、私が必要とするアプリケーションのデータテーブルに基づいてSQLデータテーブルの列名を作成しているバルク挿入を示しています。これはなぜそれがdownvotedされたのですか? –

答えて

0

私が正しく理解するならば、DataTableによって与えられたX個の列を含むテーブルをSQLデータベースに作成するだけです。

最初に知っておくべきことは、DataTablesがどのように列を格納するかのコンテキストで定義されていることです。このドキュメントでは、columnというプロパティがあることがわかります。このページでは、DataTableの各列をどのように反復処理できるかの例を見ることができます。

2番目の方法は、SQLコマンドを作成して列を持つテーブルを作成する方法(基本的なことを理解しているようです)です。

したがって、すべての列のすべての定義を含むcolunmHeader文字列を作成するだけです。このマニュアルの例を小さな文字列として構築することもできます。つまり、columnHeaderは "(TestColunmHeader varchar(50)、TestColunmHeader1 varchar(50)、TestColunmHeader2 varchar(50))のようになります。

+0

これを動的に並べ替えることができますか?それはデータテーブルからデータテーブルに変更されます –

+0

あなたが提供するすべてのdtとtableNameの関数 "TableCreator(DataTable dt、string tableName)"に対して、異なるカラムサイズの異なるSQL DataTableを動的に作成できるように、あなたの機能には明確かつユニークです。 – MMan

+0

ああクール、よく病気正しい答えとしてこれを入れてください。ありがとうございました –

関連する問題