Hi.. I am trying to make a very simple program that connects to a MySQL database using VB.NET. My program only has one form and one label. I setup my MySQL database to have a table and one field (a VARCHAR) called "Tab1". I manually inserted the value "CLOSED" into the Tab1 field using PHPMyAdmin. I want my program to change the value of the field to OPEN/CLOSED and I also want the label text on my form to change too when it's clicked.
So far, I've added the MySQL.data reference to my project and added:
To the General_DeclarationsCode:Imports System Imports System.Data Imports MySql.Data.MySqlClient
Also I declared a global variable containing a MySQL Connection:
Here is my function that connects to MySQL:Code:Public Class Form1 Dim conn As New MySqlConnection
Code:Private Function Connect(ByVal server As String, ByRef user As String, ByRef password As String, ByRef database As String) ' Connection string with MySQL Info conn.ConnectionString = "server=" + server + ";" _ & "user id=" + user + ";" _ & "password=" + password + ";" _ & "database=" + database + ";" Try conn.Open() Return True Catch ex As MySqlException Return MsgBox(ex.Message) End Try End Function
I made the program connect to MySQL on Form_Load like this:
And it connects fine but here is where I have the trouble.... I want the field to change from CLOSED to OPEN when I click Label1. It does, but it doesn't change back on the second click. Somehow I need a working code to Update the Tab1 field in my table.Code:Connect("db4free.net", "boomun", "*******", "boomdb")
Here is what I have so far:
Code:Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Click Dim myCommand As New MySqlCommand Dim myAdapter As New MySqlDataAdapter Dim myData As MySqlDataReader Dim SQL As String SQL = "SELECT * FROM `boomtable` WHERE `Tab1` = 'CLOSED'" myCommand.Connection = conn myCommand.CommandText = SQL myAdapter.SelectCommand = myCommand Try myData = myCommand.ExecuteReader() myData.Read() If myData.HasRows = 0 Then Label1.Text = "CLOSED" SQL = " UPDATE boomtable SET Tab1 = 'CLOSED' WHERE Tab1 = 'OPEN' " SQL.ExecuteNonQuery() myData.Close() Else Label1.Text = "OPEN" SQL = " UPDATE boomtable SET Tab1 = 'OPEN' WHERE Tab1 = 'CLOSED' " SQL.ExecuteNonQuery() myData.Close() End If Catch ex As MySqlException MsgBox(ex.Message) End Try End Sub
VB gives me an error and highlights SQL.ExecuteNonQuery() and the error message is 'ExecuteNonQuery' is not a member of 'String'. Can anyone help???! Thanks
Here is the entire code of the project all together:
Code:Imports System Imports System.Data Imports MySql.Data.MySqlClient Public Class Form1 Dim conn As New MySqlConnection Private Function Connect(ByVal server As String, ByRef user As String, ByRef password As String, ByRef database As String) ' Connection string with MySQL Info conn.ConnectionString = "server=" + server + ";" _ & "user id=" + user + ";" _ & "password=" + password + ";" _ & "database=" + database + ";" Try conn.Open() Return True Catch ex As MySqlException Return MsgBox(ex.Message) End Try End Function Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Click Dim myCommand As New MySqlCommand Dim myAdapter As New MySqlDataAdapter Dim myData As MySqlDataReader Dim SQL As String SQL = "SELECT * FROM `boomtable` WHERE `Tab1` = 'CLOSED'" myCommand.Connection = conn myCommand.CommandText = SQL myAdapter.SelectCommand = myCommand Try myData = myCommand.ExecuteReader() myData.Read() If myData.HasRows = 0 Then Label1.Text = "CLOSED" SQL = " UPDATE boomtable SET Tab1 = 'CLOSED' WHERE Tab1 = 'OPEN' " SQL.ExecuteNonQuery() myData.Close() Else Label1.Text = "OPEN" SQL = " UPDATE boomtable SET Tab1 = 'OPEN' WHERE Tab1 = 'CLOSED' " SQL.ExecuteNonQuery() myData.Close() End If Catch ex As MySqlException MsgBox(ex.Message) End Try End Sub Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Connect("db4free.net", "boomun", "boom123", "boomdb") End Sub End Class




Reply With Quote