前提・実現したいこと
練習で住所録を作成中です。
初心者で伝え方もつたなくて申し訳ないのですが
・Windows Formsで作成してます。
・開発環境:Windows7、Visual Studio2007
ACCESSのデータベースからデータを取得は出来てるんですが、
それを「list」を使用して「Form1」に設置した「登録情報一覧ボタン」で同じ「Rorm1」に設置したDataGridViewににまず一覧として表示したいのですがどうもうまくいかない状態で困ってます。
//form.1(親画面) private void btnInputList_Click(object sender, EventArgs e) { ////削除ボタンが機能しているか確認するためのコード(2018/07/17) //dgvAddressList.Rows.Add(); OleDbConnection dbConnect = new OleDbConnection(); CommonSQL.GetdgvData(dbConnect);//commonSQLから呼び出している(他のボタンでも使用するため関数に) //DataGridViewにデータを表示する }
//クラスを作成 public partial class CommonSQL { public AddressDataList DataClass { get; set; } //追加 //リストで作成(20180723) public static List<AddressDataList>GetdgvData(OleDbConnection dbConnect) { List<AddressDataList> listData = new List<AddressDataList>(); //追加 OleDbDataAdapter da = new OleDbDataAdapter(); //DB接続 string connectString = @"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=....\DataList.mdb"; try { //コネクション作成 dbConnect = new OleDbConnection(connectString); //コネクションを開く dbConnect.Open(); //変数にDBの内容を全て入れる。(テーブル名が今回は登録者情報) string queryString = "SELECT * FROM 登録者情報";//SQL文 OleDbCommand command = new OleDbCommand(queryString, dbConnect); var dataReader = command.ExecuteReader(); //データは格納している(table.load) var table = new DataTable(); table.Load(dataReader); for (int i = 0; i < table.Rows.Count; i++) //追加 { AddressDataList data = new AddressDataList(); data.Number = table.Rows[i]["登録番号"].ToString(); data.FamilyName = table.Rows[i]["姓"].ToString(); data.Name = table.Rows[i]["名"].ToString(); data.FamilyNameKana = table.Rows[i]["姓カナ"].ToString(); data.NameKana = table.Rows[i]["名カナ"].ToString(); data.Keisyo = table.Rows[i]["敬称"].ToString(); data.dtpBirthday = table.Rows[i]["生年月日"].ToString(); data.PostalCode1 = table.Rows[i]["郵便番号"].ToString(); data.sex = int.Parse(table.Rows[i]["性別"].ToString()); data.Address1 = table.Rows[i]["住所1"].ToString(); data.Address2 = table.Rows[i]["住所2"].ToString(); data.Phone = table.Rows[i]["電話"].ToString(); data.MobilePhone = table.Rows[i]["携帯電話"].ToString(); data.EMail1 = table.Rows[i]["メールアドレス"].ToString(); data.URL = table.Rows[i]["URL"].ToString(); data.ImgName = table.Rows[i]["画像ファイル名"].ToString(); data.Remarks = table.Rows[i]["備考"].ToString(); //メール送信 data.MailSending =int.Parse(table.Rows[i]["メール送信"].ToString()); //印刷 data.Print = int.Parse(table.Rows[i]["印刷"].ToString()); listData.Add(data); } //コネクションを閉じる dbConnect.Close(); return listData; //追加 } catch (Exception e) { //とりあえず、メッセージボックスで情報表示 MessageBox.Show("Error:" + e.Message); return null; } return null ;//何を返すか考える }
どこをどうコードを組み立てればよろしいでしょうか?
何を作っているか(Windows Forms? WPF? ASP.NET Web Forms? ASP.NET MVC? その他?)と開発環境(OS, .NET, Visual Studio のバージョンなど)ぐらいは書こうよ。
それから、コードは ``` と ``` で囲ってください。インデントされて見やすくなるので。
ご指導ありがとうございます。変更したのですが大丈夫でしょうか?
表題の「データグリッド」は DataGridView の間違いですよね。訂正しておいてください。あと、カタカナでコントロールの名前を書くのは止めた方が良いです。データグリッドもデータグリッドビューも存在しません。正しくは DataGrid, DataGridView です。
ご指導ありがとうございます。ありがとうございます。
回答1件
あなたの回答
tips
プレビュー