1

いくつかの回答を確認しましたが、CSVファイルを介してユーザーがアップロードしたカスタムメタデータ(またはCSVファイルの列)を使用してSQLテーブルを作成する方法の詳細を見つけることができませんでした。カスタム情報用のオンラインデータベースの作成など、www.dabbledb.comで利用できる機能。これは、SQLServer2005または2008をバックエンドデータベースとして使用するWebベースの.NETアプリケーションになります。

あなたからのお便りを楽しみにしています。

ありがとうSA

4

4 に答える 4

1

私は最近、あなたの要件に非常に近いものに取り組みました。私の場合、サーバーにアップロードされた CSV ファイルの各行のデータは「blob」として保存されます。Lumen Works CSV リーダーを使用して、アップロードされた CSV ファイルを解析しました。列ヘッダーを読み取る機能があり、空白を削除して、SQL データベース テーブルの列にすることができます。

これがindyfromozに役立つことを願っています

于 2009-11-11T05:23:15.940 に答える
0

これは、私がこれを行う方法の単なる例です(つまり、バグが多く、間違っている可能性があります...)

CSV ファイル:

Column:ColumnType:size:n, Column:Type:size:n, Column:Type:size:y
C1Data, C2Data, C3Data

疑似コード:

StringBuilder sql = new StringBuilder();
sb.append("CREATE TABLE " + someTableName+ "(" + Environment.NewLine);
for(string s in csvlines) {
 if(first_line) {

    // pull apart our columns
    string[] cols = s.Split(new char[] { ',' });

    // iterate over the list of columns
    for(string col in cols) {

      // pull apart the column name, type, size and nullable flag
      string[] ci = col.Split(new char[] { ':' });

      // add our column name and add the datatype
      sb.Append("[" + ci[0] + "]" + " [" + ci[1] + "] ");

      // only put a size if value greater than 0
      if(ci[2] != "0") {
        sb.Append("(" + ci[2] + ") ");
      }

      // put our NULLABLE flag on NULL columns only
      if(ci[3] == "y") {
        sb.Append("NULL," + Environment.NewLine);
      } else {
        sb.Append("NOT NULL," + Environment.NewLine);
      }
    }

    // remember the above has a bug where the last column has a rouge ,
    sb.Append(")");
 } else  {
     // create our insert statement and insert as appropriate
 }
}

うんざりしたり、汚いかもしれませんが、あなたが必要とすることをするだけかもしれません!

于 2009-11-11T05:56:38.347 に答える
0

エンティティ属性値データベースを使用している場合は、エンティティにリンクされたマスター属性テーブルに新しい列を追加するだけで、エンティティの属性値テーブルに値を割り当てることができます。

しかし、それが意味をなさない場合は、ALTER TABLEコマンドを使用して新しい列を追加する必要がありますが、テーブル構造を動的に変更する場合は、EAV データベース構造を検討することをお勧めします。

于 2009-11-11T05:22:06.200 に答える
0

csv を読み取り、各列のデータを分析し、最初の行が列名であると最初に信じようとし、次に create table ステートメントと一連の 0f 挿入を組み立てる perl プログラムを作成しました。コマンド環境または PHP 内のシステム コールから実行できます。

于 2009-11-11T05:29:12.760 に答える