C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[8]: OLE DB プロバイダが ConnectionString


(過去ログ 78 を表示中)

[トピック内 9 記事 (1 - 9 表示)]  << 0 >>

■46272 / inTopicNo.1)  OLE DB プロバイダが ConnectionString
  
□投稿者/ すりーぷ (1回)-(2010/01/29(Fri) 10:31:24)

分類:[VB.NET/VB2005 以降] 

PostgreSQLにVB2005で接続しようとしています。
以下のプログラムを実行すると、「OLE DB プロバイダが ConnectionString で指定されませんでした。たとえば 'Provider=SQLOLEDB;' などの場合です。」というエラーになります。
何が問題なのでしょうか?

Private Sub btnCompCSV_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCompCSV.Click
Dim sr As IO.StreamWriter
Dim exfolder As String
Dim linetext As String
Me.Cursor = Cursors.WaitCursor
exfolder = Application.StartupPath & "\データ出力\"
If IO.Directory.Exists(exfolder) = False Then
IO.Directory.CreateDirectory(exfolder)
End If
sr = New IO.StreamWriter(exfolder & "タグデータ.csv", False, System.Text.Encoding.GetEncoding("Shift_JIS"))
Using connection As New OleDb.OleDbConnection(My.Settings.iodbConnectionString)
Dim command As New OleDb.OleDbCommand("Select * from tbl_tag", connection)
connection.Open()
Dim dr As OleDb.OleDbDataReader = command.ExecuteReader()
Do While dr.Read
linetext = dr("tag") & ","
linetext &= dr("tag_type") & ","
linetext &= dr("station") & ","
linetext &= dr("name1") & ","
linetext &= dr("name2")
sr.WriteLine(linetext)
Loop
dr.Close()
connection.Close()
End Using
Me.Cursor = Cursors.Default
MsgBox("タグデータを以下のフォルダにエクスポートしました" & vbCrLf & vbCrLf & exfolder)
End Sub


引用返信 編集キー/
■46276 / inTopicNo.2)  Re[1]: OLE DB プロバイダが ConnectionString
□投稿者/ オショウ (512回)-(2010/01/29(Fri) 10:49:05)
No46272 (すりーぷ さん) に返信
> PostgreSQLにVB2005で接続しようとしています。
> 以下のプログラムを実行すると、「OLE DB プロバイダが ConnectionString で指定されませんでした。たとえば 'Provider=SQLOLEDB;' などの場合です。」というエラーになります。
> 何が問題なのでしょうか?
> Using connection As New OleDb.OleDbConnection(My.Settings.iodbConnectionString)
> Dim command As New OleDb.OleDbCommand("Select * from tbl_tag", connection)
> connection.Open()

  エラーの場所は、この.Openで出るのですか?

> Dim dr As OleDb.OleDbDataReader = command.ExecuteReader()

  それとも、この.ExecuteReaderで出るんですか?

● .ExecuteReaderで出るんなら・・・

> Dim command As New OleDb.OleDbCommand("Select * from tbl_tag", connection)
> connection.Open()

  この2行の順番を逆にしてみたら・・・

※ 未確認です。

以上。
引用返信 編集キー/
■46281 / inTopicNo.3)  Re[2]: OLE DB プロバイダが ConnectionString
□投稿者/ すりーぷ (2回)-(2010/01/29(Fri) 11:36:54)
No46276 (オショウ さん) に返信

>> Using connection As New OleDb.OleDbConnection(My.Settings.iodbConnectionString)
エラーはここで出ます。
引用返信 編集キー/
■46282 / inTopicNo.4)  Re[3]: OLE DB プロバイダが ConnectionString
□投稿者/ みきぬ (756回)-(2010/01/29(Fri) 11:50:15)
No46281 (すりーぷ さん) に返信
> >> Using connection As New OleDb.OleDbConnection(My.Settings.iodbConnectionString)
> エラーはここで出ます。

とすると、まあ原因はエラーメッセージ通りなのでしょう。
接続文字列の中身が、OLE DB プロバイダ向けなのかを確認してみてはどうかな。

確認方法は例えば、Visual Studio のサーバエクスプローラから接続を作ってみて、その接続文字列と比べてみるとかね。

# 内容が内容なので、それを晒してくれとは言えないので
引用返信 編集キー/
■46285 / inTopicNo.5)  Re[4]: OLE DB プロバイダが ConnectionString
□投稿者/ すりーぷ (3回)-(2010/01/29(Fri) 12:17:45)
No46282 (みきぬ さん) に返信

初心者なので、よくわからないのですが、どうすれば確認できるのでしょか?

なお、iodbConnectionString の定義は以下の通りでした。

<Global.System.Configuration.ApplicationScopedSettingAttribute(), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Configuration.SpecialSettingAttribute(Global.System.Configuration.SpecialSetting.ConnectionString), _
Global.System.Configuration.DefaultSettingValueAttribute("Dsn=PostgreSQL35W;database=iodb;server=localhost;port=5432;uid=postgres;sslmode=d" & _
"isable;readonly=0;protocol=7.4;fakeoidindex=0;showoidcolumn=0;rowversioning=0;sh" & _
"owsystemtables=0;fetch=100;socket=4096;unknownsizes=0;maxvarcharsize=255;maxlong" & _
"varcharsize=8190;debug=0;commlog=0;optimizer=0;ksqo=1;usedeclarefetch=0;textaslo" & _
"ngvarchar=1;unknownsaslongvarchar=0;boolsaschar=1;parse=0;cancelasfreestmt=0;ext" & _
"rasystableprefixes=dd_;lfconversion=1;updatablecursors=1;disallowpremature=0;tru" & _
"eisminus1=0;bi=0;byteaaslongvarbinary=0;useserversideprepare=0;lowercaseidentifi" & _
"er=0;xaopt=1")> _
Public ReadOnly Property iodbConnectionString() As String
Get
Return CType(Me("iodbConnectionString"), String)
End Get
End Property

引用返信 編集キー/
■46286 / inTopicNo.6)  Re[5]: OLE DB プロバイダが ConnectionString
□投稿者/ みきぬ (757回)-(2010/01/29(Fri) 12:42:06)
No46285 (すりーぷ さん) に返信
> 初心者なので、よくわからないのですが、どうすれば確認できるのでしょか?
>
私としては、それについては既に回答したつもりなのですが、その部分がわからなかったのでしょうか。

ついでに言えば、私にはあなたが何の初心者かわからないので、どう説明を変えれば分かってもらえるのか、その判断もできません。
引用返信 編集キー/
■46287 / inTopicNo.7)  Re[6]: OLE DB プロバイダが ConnectionString
□投稿者/ すりーぷ (4回)-(2010/01/29(Fri) 13:10:19)
No46286 (みきぬ さん) に返信

Visual Studio のサーバエクスプローラで、サーバー(ODBC.localhost.iodb)のプロパティの
接続文字列と、iodbConnectionStringの定義と比較してみましたが、同一でした。

その他、確認方法はありますか?

引用返信 編集キー/
■46288 / inTopicNo.8)  Re[7]: OLE DB プロバイダが ConnectionString
□投稿者/ はつね (1177回)-(2010/01/29(Fri) 13:19:30)
No46287 (すりーぷ さん) に返信
> Visual Studio のサーバエクスプローラで、サーバー(ODBC.localhost.iodb)のプロパティの

これはODBCであり、今回使っているのは
OleDb.OleDbConnection
なのでOLE DBだから接続文字列は違いますよ。

引用返信 編集キー/
■46302 / inTopicNo.9)  Re[8]: OLE DB プロバイダが ConnectionString
□投稿者/ すりーぷ (5回)-(2010/01/29(Fri) 18:15:03)
No46288 (はつね さん) に返信

ありがとうございます。
思い込みって怖いですう。
無事修正できました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -