2010-11-18 15 views
2

まず、データベースとC#の作業を開始したので、あまりにも愚かな間違いを犯す可能性があります。私はSQLサーバエクスプレスデータベースに接続していますが、新しいカラムを追加するためにデータセットを更新した後にデータソースを更新しようとすると、正常に更新されません。以下のコード:データアダプタの更新でデータソースを更新する際の問題

 DataColumn newColumn; 
     SqlCommandBuilder cmdBuild = new SqlCommandBuilder(_myAdapt); 

     foreach (String s in myList) 
     { 
      newColumn = new DataColumn(s, System.Type.GetType("System.String")); 
      _myData.Tables["Table1"].Columns.Add(newColumn); 
     } 

     _myAdapt.Update(_myData, "Table1"); 

これはなぜ機能しないのですか?私はそれをデバッグし、データセットは間違いなく新しい列で更新されていますが、データソースを更新することはできません。

ありがとうございました。

+0

どのようなエラーがありますか?データベースに実際に存在する列をさらに更新しようとしていますか? – gbn

+0

ええ、私はデータベースに存在するより多くの列を更新しようとしていました。新しいテーブルを作成しようとしていた2つのテキストの巨大なファイルがあります。そのうちの1つに、列にマップしたい約70万のラベルのリストが含まれています。もう1つは、列が追加されたら一括挿入する約1500人のテスト結果が含まれています。 – rhbrb

答えて

0

この列はデータベースに存在します(データベースにはない)か、データセットを使用してデータベース内のテーブル定義を変更しようとしていますか?

私は上記の2つが可能であるとは思わない。データセットには、更新するデータベーステーブルの列構造と一致する列構造が必要です。しかし、データセットに好きなだけ多くの行を追加することができ、それらはすべてデータベースの細かい部分にINSERTします。

実行時にテーブルに列を追加する必要があると感じたら、データモデルを再訪することをお勧めします。可能な場合は、保存しているデータエンティティの主な属性を表すために、列定義を時間の経過とともに変更しないでください。

+0

それは私がやろうとしていた2つのうちの2番目です。私は私のアプローチを考え直さなければならないだろうと思う。答えをありがとう。 – rhbrb

関連する問題