0

I want to create a connection string and use it to all forms in my application, but is showing error.

My code below throws the error: "Object reference not set to an instance of an object"

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

Module sqlserverconnectionstring
    Public connsql As SqlConnection    
    Dim connstr As String     

    Public Sub sqlserverconnection()
        Try
             connstr = "Provider=SQLOLEDB.1; Data Source=" & My.Settings.sqlservername & ";Initial Catalog=" & My.Settings.sqlDBname & ";Password=" & My.Settings.sqlPswd & ";User ID=" & My.Settings.sqlUserName
             connsql.Open()

        Catch ex As Exception
            MsgBox(ex.Message.ToString)

        End Try
    End Sub
    Public Sub sqlserverdisconnectdatabase()
        Try
            connsql.Close()
        Catch myerror As SqlClient.SqlException

        End Try
    End Sub
End Module
Tim Schmidt
  • 1,233
  • 12
  • 26

3 Answers3

1

The connsql field is never initialized, so it is always null (Nothing in VB.NET).

You'll want this:

Sub Connect()

    Try

        Me.connstr = "Provider=SQLOLEDB.1; Data Source=" & My.Settings.sqlservername & ";Initial Catalog=" & My.Settings.sqlDBname & ";Password=" & My.Settings.sqlPswd & ";User ID=" & My.Settings.sqlUserName

        Me.connsql = New SqlConnection( Me.connstr )
        Me.connsql.Open()

    Catch ex1 As InvalidOperationException
        MsgBox( ex1.Message )
    Catch ex2 As SqlException
        MsgBox( ex2.Message )
    Catch ex3 As ConfigurationErrorsException
        MsgBox( ex3.Message )

    End Try

End Sub

I note that it will be a better idea to store the entire connection string in your App.config file instead of building it at runtime (what if the user has an SSPI connection, for example?):

In your App.config file:

<configuration>
    <connectionStrings>
        <add name="db" connectionString="it goes here" />
    </connectionStrings>
</configuration>

Usage:

Me.connsql = new SqlConnection( ConfigurationManager.ConnectionStrings("db").ConnectionString )
Dai
  • 110,988
  • 21
  • 188
  • 277
0

You need to create an object of the SqlConnection first, and set the connectionString befor opening the connection

connstr = "Provider=SQLOL ..."
connsql = new SqlConnection(connstr)   
connsql.Open()
Tim Schmidt
  • 1,233
  • 12
  • 26
0

connstr = "Provider=SQLOLEDB.1; Data Source=" & My.Settings.sqlservername & ";Initial Catalog=" & My.Settings.sqlDBname & ";Password=" & My.Settings.sqlPswd & ";User ID=" & My.Settings.sqlUserName connsql = New SqlConnection(connstr) connsql.Open()

solved Thanks to all.....