- - PR -
C#でDB接続
1|2|3
次のページへ»
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-05-01 15:56
恐れ入ります。
C#に関して質問させて下さい。 C#を始めたばかりで、DB接続を行なってみようとしたところ、 下記エラーが出て、対処法がいまいち分かりません。 どなたかアドバイスを頂ければ幸いです。 <環境> DB:Oracle8i platform:Visual C#.net(English version) Microsoft Development Environment 2002 Version7.0.9466 Microsoft .NET Framework 1.0 OS: Windows2000 Professional <サンプルコード> 下記のコードは、フォーム上にボタンがひとつありまして、押すと、 レコードカウントが表示されるという単純なものを意識しています。 using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; using System.Data.OleDb; namespace WindowsApplication2 { public class Form1 : System.Windows.Forms.Form { private System.Windows.Forms.Button blnTest; 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.blnTest = new System.Windows.Forms.Button(); this.SuspendLayout(); this.blnTest.Location = new System.Drawing.Point(40, 32); this.blnTest.Name = "blnTest"; this.blnTest.Size = new System.Drawing.Size(88, 32); this.blnTest.TabIndex = 0; this.blnTest.Text = "button1"; this.blnTest.Click += new System.EventHandler(this.blnTest_Click); // // Form1 // this.AutoScaleBaseSize = new System.Drawing.Size(5, 12); this.ClientSize = new System.Drawing.Size(292, 273); this.Controls.AddRange(new System.Windows.Forms.Control[] { this.blnTest}); this.Name = "Form1"; this.Text = "Form1"; this.ResumeLayout(false); } #endregion /// <summary> /// The main entry point for the application. /// </summary> [STAThread] static void Main() { Application.Run(new Form1()); } private void blnTest_Click(object sender, System.EventArgs e) { String sConnectionString = "Provider=MSDAORA;User ID=taro;password=taro01 ; Data Source = test;Persist Security Info=False"; String mySelectQuery = "SELECT * FROM TEST_USER_TABLE"; OleDbConnection myConnection = new OleDbConnection(sConnectionString); OleDbCommand myCommand = new OleDbCommand(mySelectQuery, myConnection); myConnection.Open(); ///この箇所でエラーが出ます。 OleDbDataReader myReader = myCommand.ExecuteReader(); int RecordCount=0; try { while (myReader.Read()) { RecordCount = RecordCount + 1; MessageBox.Show(myReader.GetString(0).ToString()); } if (RecordCount == 0) { MessageBox.Show("No data returned"); } else { MessageBox.Show("Number of records returned: " + RecordCount); } } catch (Exception ex) { MessageBox.Show(ex.ToString()); } finally { myReader.Close(); myConnection.Close(); } } } } 上記コードを実行したところ、下記の警告が出ました。 An unhandled exception of type System.Data.OleDb.OleDbException occurred in system.data.dll それから、下記のコードに関してですが、 String sConnectionString = "Provider=MSDAORA;User ID=taro;password=taro01 ; Data Source = test;Persist Security Info=False"; たとえば、DBのユーザーがtaro、パスワードがtaro01、DBがtestなら、この書き方で OKなんでしょうか? 初歩的な質問で申し訳ありません。 | ||||
|
投稿日時: 2006-05-01 16:05
接続文字列に関しては
http://www.connectionstrings.com/ ここが参考になります。 _________________ 囚人のジレンマな日々 | ||||
|
投稿日時: 2006-05-01 16:06
ソース コードを全部貼り付ける必要はないような... (;^-^)
この場合は、OleDbConnection の部分だけで良いはずです。
接続文字列に問題はないようですが、SQL Plus などで接続はできますか? _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2006-05-01 16:23
囚人さん、じゃんぬねっとさん、返信ありがとうございました。
ソースコードの件、申し訳ありませんでした。 ちなみに、Connectionの箇所は、マイクロソフトのホームページを参照して、 記載しました。また、じゃんぬさんが記載して頂いたSQLPlusにも問題なく Connectできています。 他に、環境設定(.net内で)をしなければならないのでしょうか? | ||||
|
投稿日時: 2006-05-01 16:38
ないです、実際に私は接続できています。 Oracle 8.1.7 以上であれば問題なく今のコードで Open はできると思います。 Oracle Provider for OLE DB のバージョンがおかしいのかな? _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2006-05-01 16:45
じゃんぬさん、
返答ありがとうございます。 今、select * from v$instanceでversionを見たところ、 8.1.6.0.0でした。これが、不具合の原因でありましょうか? ということは、Oracle Provider for OLE DB のversionもこれに あわせる必要があるのでしょうか? よろしくお願いします。 | ||||
|
投稿日時: 2006-05-01 17:02
たとえば、Oracle Provider for OLE DB が 8.1.7 であれば、 接続先データベースが 7.3.4 以上のものをサポートできます。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2006-05-01 17:15
じゃんぬさん、
返答ありがとうございました。 Oracleのホームページより、OLEをダウンロードしております。 ダウンロード後に、もう一度、セットアップして、やってみます。 ありがとうございました。 |
1|2|3
次のページへ»