1

c#で既存のデータセットの途中に行を追加することは可能ですか? 私は多くの検索を行いましたが、これを行う方法について何も見つけることができませんでした。私は何を試しましたか?私は多くの検索を試みましたが、データセットの「insertAt」メソッドのようなものは見つかりませんでした。ありがとうマイク

4

4 に答える 4

3

DataSet は DataTable オブジェクトのコレクションで構成されているので、Datatable について話していると思いますよね? もしそうなら、それにはInsertAtメソッドがあります:

DataTable dt = dataset.Tables[0]; //Get first datatable from dataset
DataRow row = dt.NewRow();
//fill row
dt.Rows.InsertAt(row,3); //Insert at index 3
于 2013-05-16T20:15:41.097 に答える
1

DataSet には行コレクションがないため、行をまったく追加できません。

を使用して、インデックスによって行を DataTable オブジェクトに挿入できますDataTable.Rows.InsertAt(row, i)。テーブルが DataSet にある場合、構文は次のようになります。DataSet.Tables[i].Rows.InsertAt(row, 0)

于 2013-05-16T20:17:10.680 に答える
0

これを行う短いサンプルを次に示します。

class Program
{
    static void Main(string[] args)
    {
        DataSet ds = new DataSet();

        DataTable dt = ds.Tables.Add("Table");
        dt.Columns.Add("Id");
        for (int i = 0; i < 10; i++)
        {
            dt.Rows.Add(new object[]{i});
        }

        var newRow=dt.NewRow();
        newRow.ItemArray=new string[]{(dt.Rows.Count/2).ToString()+".middle"};
        dt.Rows.InsertAt(newRow, dt.Rows.Count / 2);
    }
}
于 2013-05-16T20:22:28.633 に答える
0

私の意見では(これには多くの時間がかかる可能性がありますが)、配列またはリスト配列を作成し、データセットから for ループまたは任意のループを介してそこにすべてのデータを転送できます...次に if ステートメントを内部に配置して、どこにあるかを確認します追加のデータを次のように配置します。

List<string> arrayList = dataset;// i know this is not possible just showing you that you have to put all your data from dataset to array:)
List <string> newList = new List<string>();//its up to you if you want to put another temporary array or you could simply output your data from the loop.
//THE LOOP
for(int i = 0; i<=arrayList.Count(); i++){
    if(i == x)//x is the index or you may change this statement its up to you
  {
    //do the print or pass the data to newList
      newList.add(arraList[i]);//not sure about this. its been a while since the last time i use this array list..
  }
}

別の方法は、クエリをカスタマイズすることです(データベースからデータを引き出す場合)

幸せなコーディング:)

于 2013-05-16T20:13:15.213 に答える