chart connection with MySql - mysql

I am connecting a chart object in mysql database but getting this error:
object reference not set to an instance of an object
This is the code I used:
Imports MySql.Data.MySqlClient
Public Class Form1
Dim con As New MySqlConnection
Dim com As MySqlCommand
Dim dt As New DataTable
Private Sub btnlaod_Click(sender As Object, e As EventArgs) Handles btnlaod.Click
con = New MySqlConnection
con.ConnectionString = "server=localhost;userid=root;password=;database=noh_mis"
Dim Reader As MySqlDataReader
Try
con.Open()
Dim query As String
query = "Select * From database.students_profile"
Reader = com.ExecuteReader
While Reader.Read
Chart1.Series("Male").Points.AddXY(Reader.GetString("Gender"), Reader.GetString("GradeLevel"))
End While
con.Close()
Catch ex As Exception
MessageBox.Show(ex.Message)
Finally
con.Dispose()
End Try
End Sub
End Class

You do not make a command before using com.ExecuteReader. You make a string of sql, but never connect that with your database.
Try adding the below line after building query but before Reader = com.ExecuteReader:
com = New MySqlCommand(query, con)

Related

VB.NET Display data from MySql to Datagrid

I already read all the questions and answers from previous post
but not fit with my problem
Problem :
I want to display data from db(mysql) to datagrid
but the problem is MySqlDataReader doesnt recognize
SelectCommand
Fill
Update
as the member of MySqlDataReader
I follow the exact same way of code writing from the tutorial
Why this problem occur ??
Below I attached my code.
I hope someone could help me.
Imports MySql.Data.MySqlClient
Public Class AdminAddItem
Dim MysqlConnection As MySqlConnection
Dim FoodCommand As MySqlCommand
Dim DataFoodRead As MySqlDataReader
Dim dbDataSetFood As New DataTable
Private Sub btnLoadFood_Click(sender As Object, e As EventArgs) Handles btnLoadFood.Click
'declare new connection
MysqlConnection = New MySqlConnection
'prepare connection string
MysqlConnection.ConnectionString =
"server = localhost; userid = root; password = 1234 ; database = kedaikopimamba_db"
Dim bSource As New BindingSource
Try
MysqlConnection.Open()
Dim query As String
query = "select * from kedaikopimamba_db.foodtable"
FoodCommand.Connection = MysqlConnection
FoodCommand.CommandText = query
DataFoodRead.SelectCommand = FoodCommand
DataFoodRead.Fill(dbDataSetFood)
bSource.DataSource = dbDataSetFood
dgDisplayItem.DataSource = bSource
DataFoodRead.Update(dbDataSetFood)
MysqlConnection.Close()
Catch ex As MySqlException
MessageBox.Show(ex.Message)
Finally
MysqlConnection.Dispose()
End Try
End Sub
End Class
What part to your code is the error? Please let us know to easily identify the problem.

Connect to mySQL with VB.NET from values

Im trying to connect to mySql, but I have problem locating where im doing wrong.
My form contain e a label that is a number thats going to be posted to Score and a textbox where the user typed their name to be posted in Navn.
My code so far is:
Imports System
Imports System.Data
Imports System.Data.SqlClient
Public Class Form1
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Dim connect As New SqlConnection("Data Source = mysqlAdress;Network Library= DBMSSOCN;Initial Catalog=**;User ID=**;Password=**;")
Dim query As String = "INSERT INTO 2048 VALUES(#score, #name)"
Dim command As New SqlCommand(query, connect)
command.Parameters.Add("#score", SqlDbType.Int).Value = Label1.Text
command.Parameters.Add("#navn", SqlDbType.VarChar).Value = TextBox1.Text
connect.Open()
connect.Close()
End Sub
Your table name should be enclosed in backticks like this:
Dim query As String = "INSERT INTO `2048` VALUES(#score, #name)"
Also try to avoid table names with such naming conventions ie., only numbers.
Also you are opening and closing the connection simultaneously.
connect.Open()
connect.Close()
Try like this:
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Dim connectionString As String = "Data Source = mysqlAdress;Network Library= DBMSSOCN;Initial Catalog=**;User ID=**;Password=**;"
Using SQLConnection As New MySqlConnection(connectionString)
Using sqlCommand As New MySqlCommand()
With sqlCommand
.CommandText = "INSERT INTO `2048` VALUES(#score, #name)"
.Connection = SQLConnection
.CommandType = CommandType.Text
.Parameters.AddWithValue("#score", Label1.Text)
.Parameters.AddWithValue("#name", TextBox1.Text)
End With
Try
SQLConnection.Open()
sqlCommand.ExecuteNonQuery()
Catch ex As MySqlException
MsgBox ex.Message.ToString
Finally
SQLConnection.Close()
End Try
End Using
End Using
End Sub

why sql command cannot be converted to mysql command in vb.net

I am currently working on connecting my data grid view to my database, but the problem is I can't connect with this error : MySql.Data.MySqlClient.MySqlCommand' cannot be converted to 'System.Data.SqlClient.SqlCommand
here's my code:
Private Sub populateGird()
Dim da As New SqlDataAdapter
Dim ds As New DataSet
Dim bs As New BindingSource
Try
sqlC = New MySqlCommand("SELECT c_id, CONCAT(c_firstname, c_lastname), rank_name, c_bir_status, rank_basic_pay, rank_positional_allowance," &
"rank_meal_allowance, ca_worth FROM tbl_crew, tbl_cash_advance, tbl_rank", conn)
da.SelectCommand = sqlC '--> error is that sqlC
da.Fill(ds)
bs.DataSource = ds
PayrollGrid.DataSource = bs
da.Update(ds)
conn.Close()
Catch ex As Exception
MessageBox.Show(ex.Message)
Finally
conn.Dispose()
End Try
this is my connection code in a module:
Imports MySql.Data.MySqlClient
Module Module1
Public conn As MySqlConnection
Public Sub connect()
conn = New MySqlConnection
conn.ConnectionString = "server=localhost;user=root;database=fat2x_payroll;pwd=;Convert Zero Datetime=True"
Try
conn.Open()
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
End Module
The error message is quite clear - you are trying to assign from an incompatible type! SelectCommand is of type System.Data.SqlClient.SqlCommand because you have defined da as a variable of type System.Data.SqlClient.SqlDataAdapter. On the other hand, you are creating a variable of type MySql.Data.MySqlClient.MySqlCommand, which is a different type and which cannot be converted to SqlCommand when you try to do the assignment.
The way to fix this is to change your code to use the corresponding classes from MySql.Data.MySqlClient, like so:
Dim da As New MySqlDataAdapter
Change your declaration of the SqlDataAdapter to the appropriate type for MySQL (I'm guessing MySqlDataAdapter?)
Dim da As New SqlDataAdapter

key word not supported 'data source'

im having problem in my connection. the error said that key word not supported in the data source and i dont what to do next. thanks in advance!
Imports MySql.Data
Imports MySql.Data.MySqlClient
Public Class frmMasancayClinicSignupvb
Dim connection As New MySqlConnection
Dim myReader As MySqlDataReader
Dim Adapter As MySqlDataAdapter
Dim myCommand As MySqlCommand
Dim Dset As New DataSet
Dim table As New DataTable
Dim MyQuery As String
Dim i As Integer
Private Sub frmMasancayClinicSignupvb_Load(sender As Object, e As EventArgs) Handles MyBase.Load
connection = New MySqlConnection("Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\Users\Mark\Documents\MASANCAYCLINICLOGIN.mdf;Integrated Security=True;Connect Timeout=30")
Try
If connection.State = ConnectionState.Closed Then
connection.Open()
MsgBox("connected to database")
Else
connection.Close()
End If
Catch ex As Exception
MsgBox(ex.ToString)
End Try
connection.Close()
End Sub
End Class
It appears that you're passing in the arguments for a SqlConnectionStringBuilder - that's for Microsoft's SqlServer database, not MySql. (see
http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnectionstringbuilder.integratedsecurity(v=vs.110).aspx?cs-save-lang=1&cs-lang=vb#code-snippet-2 ).
MySqlConnection takes "Data Source" but doesn't take those other parameters. See :
http://dev.mysql.com/doc/refman/5.0/es/connector-net-examples-mysqlconnection.html#connector-net-examples-mysqlconnection-defctor

access a mysql db and displaying it in a gridview or table

I am trying to access a Mysql DB and display it in a Gridview in .Net
I can get it to connect to the DB, but it displays nothing and there is records in the DB, this is the code i am using.
Dim MysqlConn As MySqlConnection
Dim ContactsCommand As New MySqlCommand
Dim ContactsAdapter As New MySqlDataAdapter
Dim ContactsData As New DataTable
Dim SQL As String
Private Sub btnGrabData_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGrabData.Click
MysqlConn = New MySqlConnection()
SQL = "SELECT AffID FROM toutcome"
MysqlConn.ConnectionString = "Server=localhost;Database=merrywoodtest;UID=MerryWoodTest;PWD=H0r$hamTest;"
Try
MysqlConn.Open()
ContactsCommand.Connection = MysqlConn
ContactsCommand.CommandText = SQL
ContactsAdapter.SelectCommand = ContactsCommand
ContactsAdapter.Fill(ContactsData)
DataGridView1.DataSource = ContactsData
Catch myerror As MySqlException
MessageBox.Show("Cannot connect to database: " & myerror.Message)
Finally
MysqlConn.Close()
End Try
End Sub
Please make sure that you will call DataBind() method of DataGridView after the data source is assinged.
You may also set the Connection property of the ContactsCommand object and the SelectCommand property of the ContactsAdapter object.