• ベストアンサー

データベース接続について

いま、C#を勉強しているものです。 とりあえずデータベースに接続するアプリを作りたいのですがよく分かりません。 ADO.NETに対する勉強不足なのですが・・・。 例えば、Accessのテーブル内容をFormのリストボックスに表示するような サンプルを頂けないでしょうか? 宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • nonchi
  • ベストアンサー率43% (16/37)
回答No.1

口で説明するのは難しいので、ソースを丸投げします。 デザイナを使ってフォームにリストボックス1つをいれただけのデザインです。 頑張ってください。 using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; using System.Data.OleDb;  //MDBを使うときに使用します namespace WindowsApplication1 {  // Form1 の概要  public class Form1 : System.Windows.Forms.Form  {   private System.Windows.Forms.ListBox listBox1;   private System.ComponentModel.Container components = null;   public Form1()   {    InitializeComponent();   }   // 使用されているリソースに後処理を実行します。   protected override void Dispose( bool disposing )   {    if( disposing )    {     if (components != null)     {      components.Dispose();     }    }    base.Dispose( disposing );   }   #region Windows Form Designer generated code   // デザイナ サポートに必要なメソッド   private void InitializeComponent()   {    this.listBox1 = new System.Windows.Forms.ListBox();    this.SuspendLayout();        // listBox1    this.listBox1.ItemHeight = 12;    this.listBox1.Location = new System.Drawing.Point(9, 8);    this.listBox1.Name = "listBox1";    this.listBox1.Size = new System.Drawing.Size(269, 88);    this.listBox1.TabIndex = 0;    // Form1    this.AutoScaleBaseSize = new System.Drawing.Size(5, 12);    this.ClientSize = new System.Drawing.Size(287, 106);    this.Controls.AddRange(new System.Windows.Forms.Control[] {                    this.listBox1});    this.Name = "Form1";    this.Text = "Form1";    this.Load += new System.EventHandler(this.Form1_Load);    this.ResumeLayout(false);   }   #endregion   // アプリケーションのメイン エントリ ポイント   [STAThread]   static void Main()   {    Application.Run(new Form1());   }      //フォームロード   private void Form1_Load(object sender, System.EventArgs e)   {    GetListItem();   }      //MDBへの接続(引数なしにしていますが、SELECTの条件に使うものなどをつけます)   private bool GetListItem()   {    try    {     OleDbConnection Conn = ADOConnectUserMDB();     OleDbCommand catCMD = Conn.CreateCommand();     catCMD.CommandText = "SELECT item FROM TABLE";     OleDbDataReader myReader = catCMD.ExecuteReader();     while (myReader.Read())     {      string wkItem = "";      if(!myReader.IsDBNull(0)) wkItem = myReader.GetString(0).Trim();      listBox1.Items.Add(wkItem);     }          myReader.Close();     Conn.Close();          return true;    }    catch    {     return false;    }   }      // ユーザMDBに接続   private OleDbConnection ADOConnectUserMDB()   {    try    {     OleDbConnection Conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\aaa.mdb");     Conn.Open();          return Conn;    }    catch    {     return null;    }   }  } }

macchan0626
質問者

お礼

回答ありがとうございます。 例を参考に頑張って見ますっ!

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • データーベースへの入力

    こんにちは! 又、質問させて下さい。 ADOを使用してAccessデータベースに入力を行うプログラムについて ですが、 データベースをADODO.Connectionで開き、 レコードセットをコンボボックス参照用、 データ入力用 と二つ使用しているのですが、データ入力用に データを入れて更新しようとするとこのデータベースは読み取り 専用ですと表示されうまく行きません。 (レコードセットのロック処理は問題無いです。) 参照用と入力用はAccessデータベースでは違うテーブルです。 データベース接続一つにレコードセット二つ使用しているから ダメなのでしょうか? こういったプログラムを組んだ経験のある方、教えて下さい。

  • COBOL 2002 でデータベースの接続

    COBOL 2002 for .netを使っています。 COBOLが初心者で、データベースへの接続方法がわかりません。 データベースはSQLServer2000です。 ミドルウエアはODBCでもADO.NETでもかまいません。 まずは、CONNECT文をどのようにして書くのか というところから教えていただけませんでしょうか。

  • C#によるADO.NETのプログラムを勉強していますが、データベースへのアクセスについて

    C#を勉強しています。今「C#実践プログラミング」(インプレス、2001年刊)の9章を読んでいます。ADO.NETの章なのですが、コードにはMicrosoft社がサンプルとして提供している「Northwind」というデータベースが使われています。私はSQLサーバの知識を持っていないので、サーバをインストールしたり、このサンプルの使い方などがわかりません。どのようにすればこのコードを試すことができるのでしょうか。試用版のVisualStudio 2008 Professionalを使用しています。参考までに一応Access2007は持っております。

  • oo4oでデータベース接続

    VBでoo4oを使ってデータベースに接続、 コンボボックスでテーブル名を指定してコマンドボタンを押すとフレキシブルグリッドに選択されたテーブルの内容を表示させるというプログラムを作っているのですが… ・どうやってコンボボックスに全テーブル名を入れればいいのか ・テーブルの内容をフレキシブルグリッドに表示させるにはどういう風に記述すればいいのか この二点がわかりません。 教えていただけないでしょうか。

  • 構造体の中身をデータベースにコピーする方法がわかりません。

     タイトルにも書いてありますが、 構造体の中身をmysqlで作成したデータベースに 書き込んでいく方法がわからなく、困っております。  PHPやODBCはまったく使い方がわからないので、 C言語のみでアクセスする方法をググってみたところ、 c apiというものがあることはわかりました。 しかし、capiを使ったサンプル自体が極端に少なく、 サンプルの内容もデータベースにアクセスして、テーブル内の 内容を表示するというものがほとんどでした。  変数の値をデータベースに書き込む、というだけのサンプルだけでもいいので、どなたか教えてくださればありがたいです。  もしくは、構造体の中身はcsvファイルとしてすべて書き出しているんですが、このcsvファイルをmysqlで直接読み込んでいったほうが早いのでしょうか?  よろしくお願いいたします。  

  • 複数のデータベースを検索したい

    困っている内容ですが、 別々のサーバに構築されたAとBというデータベースがあります。 そのAとBにADOによる接続を行いますが、 AとBのテーブルを結合して情報を取得したいと考えています。 SQL文で言うと、 顧客情報はデータベースAに 顧客詳細はデータベースBに存在するテーブルであり 会員IDはそれぞれのテーブルにある SELECT * FROM 顧客詳細 INNER JOIN 顧客情報 ON 顧客情報.会員ID = 顧客詳細.会員ID のようなことがしたいのです。 テーブルを読み込む場合 '' ADO接続オブジェクト Dim adoCon As ADODB.Connection '' 新しいADOレコードセットオブジェクトを作成する Set rs = New ADODB.Recordset '' 読み取り専用でテーブルを開く rs.Open SQL, adoCon, adOpenForwardOnly, adLockReadOnly と書いていまして、adoConの部分が1つのADO接続オブジェクトしか設定できません。 どうにかして2つのデータベースをまたがって 結合できないものでしょうか? 環境は Win2000 + VB6 + SQLSERVER2000 です。 DB初心者なので、説明がうまくいかないと思いますが、 もしおわかりの方がいましたらよろしくお願いします。

  • データベースの接続方法について

    データベースの接続方法について勉強しています。 ADOやDAO,ADODB,OLDDBやODBC等調べていて混乱しています。 上記について分かり易い書籍をご存知でしたら教えていただけませんでしょうか。 現在使用している環境は ・SQLserver2005 ・VB 2008 です。

  • Windows2003サーバーのデータベースへの接続方法を教えてくださ

    Windows2003サーバーのデータベースへの接続方法を教えてください。 うちの会社では外注で作ったアプリ(Access2003らしき感じ)を使っているのですが、使っているうちに他にも付けたい機能がでてきたため、自分でVBAを組んで作ってしまおうかなと思いました。VBAはちょっとは知っているものの、久しぶりなので素人同然です。 アプリの仕組みはよくわからないのですが、 アプリを起動するときは、ユーザーIDとパスワードを入力すると「アプリケーションサーバに接続しています」というようなメッセージの後にIPアドレスが出て、Windowsサーバー2003のアプリケーションサーバ(?)に接続しているような感じです。 データベースがAccessかどうかはわかりませんが、とりあえずAccessだと仮定して、どのようにVBAをコーディングすればデータベースにアクセスしてデータを参照することができるでしょうか? ※SQLの話ではなく、 ■データベース名・テーブル名・カラム名など、アプリで引っぱり出しているデータベースの情報はどのようにすれば取得できるか? ■アクセスするには、ログイン時に出てくるIPアドレスなども記述する必要があるのか?ということと、その記述方法 などについてお尋ねしたいという感じです。 DBがオラクルとかなら根本的に勘違いな質問なのかもしれませんが、アプリがAccessで作ったような感じなので、DBもAccessだと思っています。月曜日にやってみたいと思いますので、わかる方からの回答をお願いします。

  • プログラムで使えるデータベースは?

    最近、友人に私が個人的に作った自作ソフトを欲しいと言われました。 プログラムに長けている方々にはとっても簡単なWindowsアプリ(C#,ADO.NETにて作成)です。 入力フォームからMS-Accessにデータを蓄積し、特定出力で印刷する機能しか持ち合わせていません。 これを友人に譲るのは、問題がないのですが、 友人のPCにはAccessが入っていないとのことで、 このMS-Accessに該当するDBが無いかと探しているところです。 MS-Accessを使っているとは言っても、4つのテーブルを使っている程度です。 ちなみにOfficeは開発バージョン(?)ではありません。 候補として、MSDEやMySQLやPostgreSQL(Oracleは金額の問題で却下)などを考えたのですが、 友人いわく、それらのインストールに失敗したとのこと。 私もそれほどこれらのDBに詳しいわけでもありませんし、 友人宅に出向く機会もありません。 そこで・・・ 1.C#で使うフリー(配布可能)データベースとして、どういう手段があるのでしょうか? 2.よくフリーソフトでデータベース的なものを作っている方がいますが、あれはexeの外部にテキストデータなどのファイルにして保存しているのでしょうか? 検索の仕方が悪いのか、なかなかこの辺の情報に行き当たりません。 どなたかご回答をつけていただけると助かります。

  • [ADO.NET]接続間の検索について

    ADO.NETについて教えて欲しいことがあります。 1つのシステムで、1つのメインのデータベースへ接続するとき、 ADO.NETを使用して接続しています。 これに、サブのシステムで使用している別な接続(ADO.NET)がある、 という場合においてお話します。 メインのデータベース検索において、サブのシステムで使用している テーブルのデータに基づいてJoin(結合)した結果を得たいのですが、 これは可能なのでしょうか? いろいろ接続間の検索について調べていたのですが、これといった情報が無く 途方に暮れていました。 最悪はアプリケーションで、と思いますが、 汎用性を考えるとアプリケーションでの実現は限界がある、 と思いました。 何か、よい方法などございましたら、ご教授お願いします。