2016-07-12 4 views
1

私はSQL Serverテーブルに接続するためのreadiniファイルを持っており、そこからデータを表示するクエリコードでは解決できなかったエラーが発生しています誰がここにいるのですか?「オーバーロード解決エラー」を返すSQLクエリ

これは誤りである:

Error 1
Overload resolution failed because no accessible 'New' can be called with these arguments: 'Public Sub New(selectCommandText As String, selectConnection As System.Data.OleDb.OleDbConnection)': Value of type 'SQLServerApplication.readini' cannot be converted to 'System.Data.OleDb.OleDbConnection'.
'Public Sub New(selectCommandText As String, selectConnectionString As String)': Value of type 'SQLServerApplication.readini' cannot be converted to 'String'.

これはコードである:

Imports System.Data.OleDb 
Imports System.Data.SqlClient 

Public Class frmViewDtb 


Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 

    Dim connection As readini = New readini() 
    connection.getConnectionString() 

    Dim sql As String = "SELECT * FROM tblPerson" 
    Dim da As New OleDbDataAdapter(sql, connection) 
    Dim ds As New DataSet() 
    da.Fill(ds, "tblPerson") 
    DataGridView1.DataSource = ds 
    DataGridView1.DataMember = "tblPerson" 

End Sub 
End Class 

エラーがで発生していることラインがライン13である。getConnectionStringため

Dim da As New OleDbDataAdapter(sql, connection) 

コード;

ありがとうございました!

+1

だから何があなたの 'readini'クラスの外観が好きです、そしてどのコンストラクタですあなたはここに電話する予定ですか? –

答えて

1

OleDbDataAdpaterのコンストラクタが2つの文字列を必要とし、connectionという変数が文字列ではないため、エラーが発生すると思います。私はあなたのコードは次のようになりする必要が疑わ:

Dim connection As readini = New readini() 
Dim ConnString = connection.getConnectionString() 

Dim sql As String = "SELECT * FROM tblPerson" 
Dim da As New OleDbDataAdapter(sql, ConnString) 
Dim ds As New DataSet() 
da.Fill(ds, "tblPerson") 
DataGridView1.DataSource = ds 
DataGridView1.DataMember = "tblPerson" 

getConnectionString方法もReturnステートメントを追加する改正に必要な:

Public Function getConnectionString() As String 

    Dim s As String = 
     "Provider=" & provider & ";" & 
     "user ID=" & username & ";" & 
     "password=" & password & ";" & 
     "initial catalog=" & databasename & ";" & 
     "data source=" & servername & "; " & 
     "Persists Security Info=False" 
    Return s 
End Function 
+1

私が持っていたコンパイルエラーを解決し、今私は、ランタイムエラーを取得すること:「System.InvalidOperationException」種類の 未処理の例外は、のSystem.Data.dll で発生しました追加情報:ConnectionStringプロパティが初期化されていません。 – David

+0

readiniクラスから有効な接続文字列を取得していないようです。 ConnStringの内容を表示するには、デバッガまたはDebug.Printを使用します。あなたの質問にgetConnectionStringメソッドのコードを追加する価値があるかもしれませんので、私たちはそれを手伝います。 – OldBoyCoder

+1

私はそれを見てみたいと思うならば、私は今すぐにステップアップしようとしていますが、私は今、元の質問にgetConnectionStringコードを掲載しました。 – David

関連する問題