2016-08-11 16 views
0

私はVisual Studio C#を使用し、データベースとしてAccessを使用しています。私は2つの列、ItemCodeProductNameを持っています。 itemcodeが選択されたときはいつでも、そのテキストボックスにproductnameの自動入力をしたいと思います。これどうやってするの?他の列フィールドの列フィールドの値の値を得るにはどうすればいいですか?

いくつかのコード:

try 
{ 
con.Open(); 
OleDbCommand command = new OleDbCommand(@"Select * from TblInventory where ItemCode='" + txtItem.Text + "'"); 
command.Connection = con; 
command.Parameters.AddWithValue("itemcode", txtItem.Text); 

OleDbDataReader reader = command.ExecuteReader(); 
if (reader.Read())//Update Item Code is already exist 
    { 
    ......... 

私の質問を編集すること自由に感じなさいと親切にしてください。あなたにありがとう

+0

itemnameが選択されたときに* productnameの*自動入力が意味することは、product_nameが 'where'節のidに対応することを願っていますか? –

+0

はい製品名の値を取得し、その項目コードの同じ行に対応するテキストボックスで呼び出したい –

+0

少なくともItemCodeとProductNameのペアを[DataTable](http:// stackoverflow)にロードします。 DataTableをitemcodeの表示と選択に使用するコントロールにバインドする(http://stackoverflow.com/a/5660011/529282) & 商品名。 [1つのデータソースを複数のコントロールにバインドする]ことができます(http://stackoverflow.com/questions/8713218/one-datasource-for-multiple-controls)。各コントロールの必要に応じて、DisplayMemberを調整します。 – Martheen

答えて

0

これを試してください。

text_box.Text=reader["ProductName"].ToString(); 

あなたはWhere句でItemCodeを指定することによって行をフィルタリングされるので、リーダ意志が指定されたコードと一致した対応する行/ Sを含有します。必要な作業は、上記のスニペットのように名前を指定して、必要な列の値にアクセスします。

+0

ありがとうございます。これは答えかもしれない。 –

+0

お気軽にお問い合わせください... –

0

データベースからデータを抽出する場合は、OleDbDataAdapterを使用することをお勧めします。 あなたは、単に使用することができます。今すぐ

string command = @"Select * from TblInventory where ItemCode='" + txtItem.Text + "'"; 
OleDbDataAdapter da = new OleDbDataAdapter(command, con); 
DataTable dt = new DataTable(); 
da.Fill(dt); 

dtを使用します。

if (dt.Rows.Count == 0) 
    //Error Message 
else 
    cmbTreatyTitle.Text = dt.Rows[0]["ProductName"].ToString(); 

私はこれが便利です願っています。

関連する問題