Попытка создать собственное приложение CRM с использованием VB + MySQL
Так что я впервые постер, давний пользователь этого сайта. Каждый раз, когда у меня есть вопрос, я всегда обязательно прихожу сюда первым. Во всяком случае, я пытаюсь построить приложение CRM, используя существующую базу данных MySQL и Visual Studio 2010 в VB. Вот код, который у меня есть, и я пытаюсь вернуть результаты запроса mysql в представление списка, а затем сделать так, чтобы, когда кто-то дважды щелкнет строку, он открыл эту учетную запись. Вот код, который у меня есть.
Я работал над этим в течение нескольких часов, я был бы очень признателен, если кто-нибудь может мне помочь. Я экстремальный новичок на VB, но приличный с MYSQL.
Imports MySql.Data.MySqlClient
Public Class mainWindow
Public sConnection As New MySqlConnection
Private Sub mainWindow_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If sConnection.State = ConnectionState.Closed Then
sConnection.ConnectionString = "SERVER = localhost; USERID = system; PASSWORD =; DATABASE = system"
sConnection.Open()
End If
End Sub
Private Sub searchBtn_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles searchBtn.Click, Button1.Click
Dim sqlQuery As String = "Select * from tblclients"
Dim sqlAdapter As MySqlDataAdapter
Dim sqlCommand As New MySqlCommand
Dim Table As New DataTable
Dim i As Integer
With sqlCommand
.CommandText = sqlQuery
.Connection = sConnection
End With
With sqlAdapter
.SelectCommand = sqlCommand
.Fill(Table)
End With
For i = 0 To Table.Rows.Count - 1
With dataView
.Items.Add(Table.Rows(i)("id"))
With .Items(.Items.Count - 1).SubItems
.Add(Table.Rows(i)("fname"))
.Add(Table.Rows(i)("lname"))
.Add(Table.Rows(i)("company"))
.Add(Table.Rows(i)("email"))
.Add(Table.Rows(i)("phone"))
.Add(Table.Rows(i)("state"))
.Add(Table.Rows(i)("zipcode"))
End With
End With
Next
End Sub
End Class
Если кто-то может помочь снова, я был бы очень признателен.
1 ответ
Отсутствует новый на MySqlDataAdapter
Dim sqlAdapter As New MySqlDataAdapter
Это исправит вашу проблему с Object reference not set.....
Но на самом деле вы должны следовать предложению Тима Шмельтера. Никогда не поддерживайте глобальное соединение на протяжении всей жизни вашей формы / приложения. Это будет катастрофа, ожидающая случиться (особенно с MySql, который кажется более чувствительным к утечкам соединений)
Private Sub searchBtn_Click_1(.....) Handles searchBtn.Click, Button1.Click
Using sConnection = new MySqlConnection(.......)
Using sqlCommand = new MySqlCommand("Select * from tblclients", sConnection)
sConnection.Open()
Using sqlAdapter As New MySqlDataAdapter()
Dim Table As New DataTable
Dim i As Integer
With sqlAdapter
.SelectCommand = sqlCommand
.Fill(Table)
End With
...... ' the rest of your code that fills the view'
End Using
End Using
End Using
End Sub
Таким образом, вы закрываете и удаляете соединение, команда и адаптер сразу после того, как они больше не требуются, ТАКЖЕ в случае исключений. См. Использование заявления