2016-09-19 3 views
0

user_regデータベーステーブルにすべてのユーザー登録を保存し、それらをデータグリッドビューにインポートして、別のウィンドウフォームを使用してデータを入力します。データがデータベースからデータグリッドビューにインポートされるとき、私の名前の列は1つとして表示されます(名、ミドルネーム、姓が結合されます)。私の問題は、データグリッドビューからウィンドウ coloumnは(それが1として表示しますが、3つの別々のテキストボックスを持っているから。私は)私が行っている、これは=>C#を使用してデータグリッドビューからテキストボックスに選択した行を表示するには

private void Update_Users_Load(object sender, EventArgs e) 
    { 
     long totalRow = 0; 


     MySqlDataAdapter sda = new MySqlDataAdapter("SELECT `user_reg`.`user_id`, `user_reg`.`first_name`, `user_reg`.`middle_name`, `user_reg`.`last_name`, `user_reg`.`address`, `user_reg`.`sex`, `user_reg`.`nic_number`, `user_reg`.`contact_number`, `user_reg`.`email_address`, `user_reg`.`user_type` FROM `sarasavi_library`.`user_reg` WHERE `user_id`='" + borrower_id + "';", conn); 
     DataSet ds = new DataSet(); 
     sda.Fill(ds, "user_reg"); 

     totalRow = ds.Tables["user_reg"].Rows.Count - 1; 

     txt_uid.Text = ds.Tables["user_reg"].Rows[0].ItemArray.GetValue(0).ToString(); 
     txt_fname.Text = ds.Tables["user_reg"].Rows[0].ItemArray.GetValue(1).ToString(); 
     txt_mname.Text = ds.Tables["user_reg"].Rows[0].ItemArray.GetValue(2).ToString(); 
     txt_lname.Text = ds.Tables["user_reg"].Rows[0].ItemArray.GetValue(3).ToString(); 
     txt_address.Text = ds.Tables["user_reg"].Rows[0].ItemArray.GetValue(4).ToString(); 
     com_sex.Text = ds.Tables["user_reg"].Rows[0].ItemArray.GetValue(5).ToString(); 
     txt_nic.Text = ds.Tables["user_reg"].Rows[0].ItemArray.GetValue(6).ToString(); 
     txt_contact.Text = ds.Tables["user_reg"].Rows[0].ItemArray.GetValue(7).ToString(); 
     txt_email.Text = ds.Tables["user_reg"].Rows[0].ItemArray.GetValue(8).ToString(); 
     com_memtype.Text = ds.Tables["user_reg"].Rows[0].ItemArray.GetValue(9).ToString(); 

    } 

しかし、私の問題はあるが、それはdoesnのことをWindowsフォーム上で正しく表示されていない名前を形成実行してもエラーが出る

名前borrower_idは現在のコンテキストに存在しません。

borrower_idはデータグリッドビューの名前ですが、私はそれを含める方法を見つけることができません。これを含める方法に関するアイデアは何ですか?理解を深めるために、画像を添付します。screenshot

+0

try int _id =(int)dataGridView1.Rows [dataGridView1.CurrentRow.Index] .Cells [borrower_id.Index] .Value;代わりに_idを使用してください。これはidを読みたいDataGridの行に依存しますが、borrower_idは実際には列名だと考えています。 – Niklas

答えて

1

borrower_idという名前は現在のコンテキストに存在しません。

この例外は、コンパイラが "borrower_id"が何であるかを知らないことを示します。それは(コードスニペットに基づいて)あなたがそれを使用する前にどこにでも宣言したことがないからです。私が見る唯一の例は、それを使ってクエリを構築するときです。

"borrower_id"がプロパティである(これがあなたのスニペットからの宣言を省略したため)、コンパイラがその内容を知るためには宣言する必要があります。

+0

それは私の問題edmundv、このフォームでそれを使用するデータグリッドビューを宣言する方法を知らない。何か案は? –

+0

@DilumJayawardhanaあなたのUpdate_Users_Loadはどのように呼び出されていますか?それは借り手のフォームから来ますか?ダブルクリック、ボタンクリックなどのように?その場合、SQLクエリーのIDを取得するために、そのウィンドウから呼び出されたメソッドにSelectedItemのID(borrower_id)を渡すだけで済みます。そうでない場合は、それがどのように呼び出されたかを説明し、より良い解決策を手助けすることができます。 – edmundv

+0

データグリッドビュー(借り手フォーム)から行が選択されたとき、私はUpdate_usersフォームをロードするためにボタンのクリックイベントを使用します。あなたは例を提供できますか? –

関連する問題