15

定義済みの dataGridView 列を SQL ステートメントの結果にバインドするエレガントな方法はありますか?

例:

dataGridView1.Columns.Add("EID", "ID");
dataGridView1.Columns.Add("FName", "FirstName");

いくつかのSQLのような

SELECT t.FirstName AS FName, t.EmpID AS EID 
FROM table t ...

そして、私は電話します

 dataGridView1.DataSource = someDataSet.Tables[0].DefaultView;

最後の呼び出しはデータグリッドに列を追加しますが、新しい列を追加しないように列名でバインドしたいだけです。

この例では、次のような結果が得られます。

テーブル列: ID、FirstName、FName、EID (ID と FirstName は空のセルを保持)

これを取得する方法:

Table columns: ID, FirstName or FirstName, ID

よろしくお願いします!

4

5 に答える 5

20

FNamedataGridView1.Columns["FName"].DataPropertyName = "FName"がデータ テーブルの列である場所を使用します。

于 2011-03-02T16:19:24.447 に答える
17

false に設定するだけでなく、データ ソース内の対応するフィールドの各列AutoGenerateColumnsを設定する必要もあります。これは、プロパティを設定する前にデザイナーまたはコードで設定できます。DataPropertyNameDataGridViewDataSource

于 2010-01-26T03:20:43.890 に答える
4

DataGridView にはプロパティがあると思いますAutoGenerateColumnsね。

dataGridView1.AutoGenerateColumns = True;

MSDN ドキュメントから:

public bool AutoGenerateColumns { セット; 得る; System.Windows.Forms.DataGridView のメンバー

概要: System.Windows.Forms.DataGridView.DataSource または System.Windows.Forms.DataGridView.DataMember プロパティが設定されているときに、列が自動的に作成されるかどうかを示す値を取得または設定します。

戻り値: 列を自動的に作成する必要がある場合は true。それ以外の場合は false。デフォルトは真です。

プロパティは [プロパティ] ウィンドウにはありませんが、私の例のようにコードを介して設定する必要があります。

于 2009-11-16T10:42:55.417 に答える
0

グリッドビューのColumnsタグに列を追加するのはどうですか?

<Columns>
<asp:BoundField DataField="EID" HeaderText="ID" />
<asp:BoundField DataField="FName" HeaderText="First name" />
...
于 2009-11-16T13:14:22.427 に答える