Reputation: 1
I keep getting 'connection string has not properly been initialized' error in vb.net and I don't know how to fix it. I also am trying to auto-generate numbers. For example, in my table once I hit add new it should generate the next number in order.
Here is my code:
Imports System.Data
Imports System.Data.OleDb
Imports System.Data.SqlClient
Public Class AddTemplate
Private Property OleDbConnection As Object
Private Property temp As Object
Dim dc As New OleDbConnection
Dim drd As OleDbDataReader
Dim conn As SqlConnection
Dim cmd As SqlCommand
Dim da As SqlDataAdapter
Dim ds As DataSet
Dim i As Integer = 0
Private Sub TemplateNameTextBox_TextChanged(sender As Object, e As EventArgs)
Try
Catch ex As Exception
End Try
End Sub
Private Sub SearchButton_Click(sender As Object, e As EventArgs) Handles SearchButton.Click
End Sub
Public Sub Button1_Click(sender As Object, e As EventArgs) Handles SaveButton.Click
ValueSourcesBindingSource.EndEdit()
Me.Update()
End Sub
Private Sub CancelButton_Click(sender As Object, e As EventArgs) Handles CancelButton.Click
Me.Close()
End Sub
Private Function ValueSourcesDataTable() As Object
Me.Update()
End Function
Private Sub ValueSourcesBindingNavigatorSaveItem_Click(sender As Object, e As EventArgs)HandlesValueSourcesBindingNavigatorSaveItem.Click
Me.Validate()
Me.ValueSourcesBindingSource.EndEdit()
Me.TableAdapterManager.UpdateAll(Me.ValueTrackerDataSet)
End Sub
Private Sub AddTemplate_Load(sender As Object, e As EventArgs) Handles MyBase.Load
'TODO: This line of code loads data into the 'ValueTrackerDataSet.ValueSources' table. You can move, or remove it, as needed.
Me.ValueSourcesTableAdapter.Fill(Me.ValueTrackerDataSet.ValueSources)
End Sub
Private Sub ValueSourcesDataGridView_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles ValueSourcesDataGridView.CellContentClick
End Sub
Public Sub AutoNumberNo()
Dim myReader As SqlDataReader
conn = GetConnect()
conn.Open()
Dim comm As SqlCommand = New SqlCommand(Sql, conn)
myReader = comm.ExecuteReader
Try
If myReader.HasRows Then
While myReader.Read()
temp = myReader.Item("ValueSourceID") + 1
End While
Else
End If
temp = 1
End
myReader.Close()
Catch ex As Exception
End Try
conn.Close()
ValueSourceIDTextBox.Text = String.Concat(temp) ' result will appear in textbox txtId
'declare variables
Dim randomvalue As New Random 'create random object
Dim randomhold As Integer
'generate random number
For i As Integer = 0 To 9999
randomhold = randomvalue.Next(1, 9999)
ValueSourceIDTextBoxId.Text = randomhold & " " & DateTime.Now.Minute & " " & DateTime.Now.Year
Next
End Sub
Private Sub BindingNavigatorMoveNextItem_Click(sender As Object, e As EventArgs) Handles BindingNavigatorMoveNextItem.Click
End Sub
Private Sub ValueSourceIDTextBox_TextChanged(sender As Object, e As EventArgs) Handles ValueSourceIDTextBox.TextChanged
End Sub
Private Function GetConnect() As Object
Throw New NotImplementedException
End Function
Private Function Sql() As Object
Throw New NotImplementedException
End Function
Private Sub ToolStripButton1_Click(sender As Object, e As EventArgs) Handles ToolStripButton1.Click
End Sub
Private Sub ToolStripProgressBar1_Click(sender As Object, e As EventArgs)
End Sub
Private Sub BindingNavigatorMovePreviousItem_Click(sender As Object, e As EventArgs) Handles BindingNavigatorMovePreviousItem.Click
End Sub
Private Sub BindingNavigatorAddNewItem_Click(sender As Object, e As EventArgs) Handles BindingNavigatorAddNewItem.Click
Dim conn As New OleDbConnection
Dim connectionstring = ("Data Source=wal1sql1;Initial Catalog=ValueTracker;Integrated Security=True")
conn.Open()
Dim query As String = "Select IsNULL(Max(0+1), 0) ValueSourceID from ValueSourcesDataTable"
Dim dr As SqlClient.SqlDataReader
Dim cmd As New SqlCommand(query, SqlConnection)
dr = cmd.ExecuteReader
dr.Read()
ValueSourcesDataTable.Text = dr("ValueSourceID").ToString
conn.Close()
End Sub
Private Function ValueSourceIDTextBoxId() As Object
Throw New NotImplementedException
End Function
Private Function SqlConnection() As Object
Throw New NotImplementedException
End Function
End Class
Upvotes: 0
Views: 1373
Reputation: 216273
A part from the obvious error of the missing initialization, you should decide if you want an OleDbConnection or a SqlConnection,
The syntax used is valid for a SqlConnection not for an OleDbConnection.
Dim connectionstring = "Data Source=wal1sql1;Initial Catalog=ValueTracker;Integrated Security=True"
Dim query As String = "Select IsNULL(Max(0+1), 0) ValueSourceID from ValueSourcesDataTable"
Using conn = New SqlConnection(connectionstring)
Using cmd = New SqlCommand(query, conn)
conn.Open()
Using dr = cmd.ExecuteReader
dr.Read()
ValueSourcesDataTable.Text = dr("ValueSourceID").ToString
End Using
End Using
End Using
Once opened the connection should be used from objects created in the same namespace (specifically in this case System.Data.SqlClient) SqlCommand, SqlDataReader etc.... You can't freely mix OleDb and SqlClient.
Also the sql query is bit weird. What do you want to achieve with that syntax?
EDIT
In response at your comment below. The initialization is a process that every class provides to create a 'live' instance of the class. In this process the calling code could pass zero or more parameters that will be used internally by the class code to provide an initial working state.
In the specific case of the class SqlConnection you initialize a 'live' instance calling the special 'constructor' method using the syntax instancename = new classname(parameters) where parameters is a string called connectionstring with all the information required to find the server and the database containing your data. After the initialization you could start to call the methods provided by the class like Open, Close, etc...
Upvotes: 0
Reputation: 3615
Dim conn As New OleDbConnection
Dim connectionstring = ("Data Source=wal1sql1;Initial Catalog=ValueTracker;Integrated Security=True")
conn.Open()
should be:
Dim connectionstring = ("Data Source=wal1sql1;Initial Catalog=ValueTracker;Integrated Security=True")
Dim conn As New OleDbConnection(connectionstring)
conn.Open()
Upvotes: 2