3

C# の DataGridTable にプログラムで行を追加するにはどうすればよいですか? ユーザーがオプションを選択すると、以下に示すように取得している新しいデータを DataGridTable に再入力したいと思います。

        connect.Open();
        MySqlCommand comm = connect.CreateCommand();
        comm.CommandText = getCustomerInvoices + customerID + "\'";
        MySqlDataReader r = comm.ExecuteReader();
        while (r.Read())
        {
            DataGridViewRow d = new DataGridViewRow();
            String[] parameters = new String[5];
            parameters[0] = r.GetValue(0).ToString();
            parameters[1] = r.GetValue(1).ToString();
            parameters[2] = r.GetValue(2).ToString();
            parameters[3] = r.GetValue(3).ToString();
            parameters[4] = r.GetValue(4).ToString();
            d.SetValues(parameters);
            invoiceTable.Rows.Add(d);
        }
        connect.Close();

テーブルに新しい行が追加されたように見えますが、古い行はまだそこにあり、新しい行には値が含まれていないようです (空白のテキストボックスがたくさんあり、このクエリが私のテストケースで1つの結果を返しています)。

誰かが私がしなければならないことを説明できますか?

4

2 に答える 2

3

setvalueを呼び出す前に、.CreateCells(GridName)を呼び出す必要があると思います

于 2009-10-29T22:10:34.757 に答える
3

Rows.Add() には、文字列の配列に対するオーバーロードがあると思います。とにかく文字列の配列を作成している場合は、それを使用してみませんか? つまり、次の代わりに:

d.SetValues(parameters);
invoiceTable.Rows.Add(d);

あなたは使用するだろう:

invoiceTable.Rows.Add(parameters);

または、DataGridViewRow オブジェクトを作成して setvalues を呼び出したい場合は、配列をオブジェクト型の配列にキャストするか、配列を渡す代わりに各値を独自の引数として渡す必要があると思います。

于 2009-01-01T04:10:50.713 に答える