2009-08-20 9 views
1

c#.net 2.0を使用して、テーブルの特定の行にテキストボックスをバインドします。例:c#テーブル内の特定の行へのバインド

フィールド名にspecial_categeory = 'tot'が含まれているテキストボックスをバインドしたいとします。 可能ですか?または、この行のDatarowを作成してバインドする必要があります。

+0

Winformsの、ASP.NET、WPF、? –

答えて

-1

行われる必要があるといういくつかの結合がある場合は、あなたがこのパターンに従うことができます。

DataView dv = new DataView(MyTable); 
dv.RowFilter = "SPECIAL_CATEGORY = 'tot'"; 
GridView1.DataSource = dv; 
GridView1.DataBind(); 

しかし、私はあなたがテキストボックスにバインドするとは思いませんか?あなたはWinformsの話をしていると、あなたはすでにあなたのフォーム上のコンポーネントとしてデータソースを持っている、これは非常に単純であると仮定すると、

foreach(DataRow dr in MyTable.Rows) 
{ 
    if (dr["SPECIAL_CATEGORY"] != DBNull.Value && 
      dr["SPECIAL_CATEGORY"].ToString() == "tot") 
    { 
     myTextBox.Text = dr["NAME"].ToString() 
     break; 
    } 
} 
0

:あなたは次のようにTextプロパティを設定することができます。

新しいBindingSourceをフォーム上にドラッグし、データソースを既存のデータソースと同じに設定します。デザイナーの新しいBindingSourceFilterプロパティでフィルタ式を指定できます。 TextBoxを新しいBindingSourceにバインドすると、すべて設定されます。

これを手作業で(デザイナーなしで)行うのはわずかに複雑です。

BindingSource newSource = new BindingSource(); 

newSource.DataSource = yourExistingDataSource; 
newSource.Filter = "special_categeory = 'tot'"; 

textBox.DataBindings.Add("Text", newSource, "DataMember"); 
0

あなたは、私が実際にすべてのコントロールをスクロールフレームワークを持っている、と彼らは与えられたテーブル内の列名と一致した場合、彼らはすぐにバインド

myNameTextBox.DataBindings.Add("Text", MyTable, "NAME"); 
myPrenomTextBox.DataBindings.Add("Text", MyTable, "PRENOM"); 
mySpecial_CategoryTextBox.DataBindings.Add("Text", MyTable, "SPECIAL_CATEGORY"); 

...を経由して結合することができなければなりませんそれ自体は上記のようです。

グリッドをスクロールすると、フォーム内の個々のテキストコントロールも更新されるはずです。

+0

組み込みのデータバインディングデザイナーを使用するだけの理由はありませんか?これは、必要に応じて結果をフィルタリングしません。 –

-1

私はそれがWinformsのだと仮定するつもりだ、これはあなたがそれを行うことができる方法である。

myTable.DefaultView.RowFilter = "SPECIAL_CATEGORY = 'tot'"; 
this.textBox1.DataBindings.Add("Text",myTable.DefaultView,"Name"); 
+0

-1。このソースはグリッド(DataTableまたはDataViewであると仮定している)に使用されており、TextBoxを取得するためにグリッドの内容をフィルタリングしています。既存のソースを変更するのではなく、同じデータを指す新しいソースを使用する必要があります。 –

+0

ソースがグリッドに使用されていることをどのように知っていますか? OPはテーブルが何にも束縛されていることを決して指定しなかった.... – BFree

+0

良い点。それにもかかわらず、DefaultViewのプロパティは変更しないでください。それをする理由はありません。従来のADO.NETデータオブジェクトを使用する場合は、そのテーブルに新しいDataViewを作成し、それをフィルタします。 –

関連する問題