住所録をVisualStudioのC#で作成しております。
ウィンドウズフォーム1でDBから読み取ってきたテーブルを、データグリッドビューに表示し、その行のボタンを押すとフォーム2に移動し、選択された行をテキストボックスに表示したいところです。
SQL SaverのDBでDBの名前がAddress_m1、テーブル名がTable_1です。
要らないコードもたくさん書いてあると思います。すみません。
フォーム2の
DataRow nr = dt.Rows[id];
のところでで、
データ列名が正しいことを確認してください。
とエラーがでました。
public Form2(int id) //編集押したとき最初にロードする { InitializeComponent(); mae = "hennsyuu"; DataSet dataset = new DataSet("ds");//もともとあるデータセット DataTable dt = dataset.Tables.Add("Table");//もともとあるテーブル Address_m1DataSet.Table_1DataTable dataTable = new Address_m1DataSet.Table_1DataTable(); Address_m1DataSet.Table_1Row workRow = dataTable.NewTable_1Row(); // TODO: このコード行はデータを 'address_m1DataSet.Table_1' テーブルに読み込みます。必要に応じて移動、または削除をしてください。 this.table_1TableAdapter1.Fill(this.address_m1DataSet1.Table_1); DataRow nr = dt.Rows[id]; { textBox1.Text = nr["Name"].ToString(); textBox2.Text = nr["namekana"].ToString(); textBox3.Text = nr["number"].ToString(); textBox4.Text = nr["Address"].ToString(); textBox5.Text = nr["Tel"].ToString(); textBox6.Text = nr["Born"].ToString(); textBox7.Text = nr["_E_mail"].ToString(); } }
データグリッドビューの編集ボタンを押したときの処理です。↓
//gridviewの編集押したとき private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) { string sid = dataGridView1.Rows[e.RowIndex].Cells["iDDataGridViewTextBoxColumn"].Value.ToString(); int id = int.Parse(sid); //インデックスの行を選択する dataGridView1.CurrentRow.Selected = true; foreach (DataGridViewRow r in dataGridView1.SelectedRows) { Console.WriteLine(r.Index);//選択されている行番号を表示 string sr =r.Index.ToString(); int ir = int.Parse(sr); //Form2クラスのインスタンスを作成し行番号を渡す Form2 form2 = new Form2(id); form2.ShowDialog(this);// 編集画面に移動 form2.Dispose(); //フォームが必要なくなったら消す this.table_1TableAdapter.Fill(this.address_m1DataSet.Table_1); } }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/09/26 09:13
2017/09/26 09:16