03 C Mysql
03 C Mysql
03 C Mysql
http://www.codeproject.com/Articles/43438/Connect-C-to-MySQL
1
MySQL
2
XAMPP
3
Appserv
HeidiSQL
4
Downloading Connector/Net
First make sure you have downloaded and installed
the MySQL Connector/NET from the MySQL
http://dev.mysql.com/downloads/connector/net/6.1.html
update
5
Browse C:\Program Files\MySQL\MySQL Connector Net 6
6.8.3\Assemblies\v4.5
Creating Database
create database ConnectCsharpToMysql;
use ConnectCsharpToMysql;
7
Creating Table
Create table: tableinfo
11
private MySqlConnection connection;
private string server;
private string database;
private string uid;
private string password;
public Form1()
{ InitializeComponent();
server = "localhost";
database = "connectcsharptomysql";
uid = "root";
password = root";
string connectionString;
connectionString = "SERVER=" + server + ";" + "DATABASE=" +
database + ";" + "UID=" + uid + ";" + "PASSWORD=" + password + ";"; 12
connection = new MySqlConnection(connectionString);
}
private bool OpenConnection()
{
try
{
connection.Open();
return true;
}
catch (MySqlException ex)
{
//When handling errors, you can your application's response based on the
//error number.
//The two most common error numbers when connecting are as follows:
//0: Cannot connect to server.
//1045: Invalid user name and/or password.
switch (ex.Number)
{
case 0:
MessageBox.Show("Cannot connect to server. Contact
administrator");
break;
case 1045:
MessageBox.Show("Invalid username/password, please try again");
break;
} 13
return false;
}
}
private bool CloseConnection()
{
try
{
connection.Close();
return true;
}
catch (MySqlException ex)
{
MessageBox.Show(ex.Message);
return false;
}
}
14
Working with Insert, Update,
Select, Delete
Usually, Insert, update and delete are used to write or change data in the
database, while Select is used to read data.
For this reason, we have different types of methods to execute those
queries.
if (this.OpenConnection() == true)
{
MySqlCommand cmd = new MySqlCommand(query, connection);
cmd.ExecuteNonQuery();
this.CloseConnection();
}
} 19
Steps for select
To execute a Select statement, we add a few more steps, and we use
the ExecuteReader method that will return a dataReader object to read and store the data
or records.
1. Open connection to the database.
2. Create a MySQL command.
3. Assign a connection and a query to the command. This can be done using the
constructor, or using theConnection and the CommandText methods in
the MySqlCommand class.
4. Create a MySqlDataReader object to read the selected records/data.
5. Execute the command.
6. Read the records and display them or store them in a list.
7. Close the data reader.
8. Close the connection.
20
private void button4_Click(object sender, EventArgs e)
{
string query = "SELECT * FROM tableinfo";
//Open connection
if (this.OpenConnection() == true)
{
//Create Command
MySqlCommand cmd = new MySqlCommand(query, connection);
//Create a data reader and Execute the command
MySqlDataReader dataReader = cmd.ExecuteReader();
//Read the data and store them in the list
while (dataReader.Read())
{
textbox1.text += dataReader["id"] +"" +dataReader["name"] +
""+dataReader["age"] + "\r\n";
}
//close Data Reader
dataReader.Close();
//close Connection
this.CloseConnection();
}
}
21
Extra
Sometimes, a command will always return only one value, like for example
if we want to count the number of records, we have been using Select
Count(*) from tableinfo;, in this case, we will have to use the
methodExecuteScalar that will return one value.
The process to successfully run and ExecuteScalar is as follows:
1. Open connection to the database.
2. Create a MySQL command.
3. Assign a connection and a query to the command. This can be done
using the constructor, or using theConnection and
the CommandText methods in the MySqlCommand class.
4. Execute the command.
5. Parse the result if necessary. 22
6. Close the connection.
private void button5_Click(object sender, EventArgs e)
{
string query = "SELECT Count(*) FROM tableinfo";
int Count = -1;
//Open Connection
if (this.OpenConnection() == true)
{ //Create Mysql Command
MySqlCommand cmd = new MySqlCommand(query, connection);
//ExecuteScalar will return one value
Count = int.Parse(cmd.ExecuteScalar() + "");
//close Connection
this.CloseConnection();
MessageBox.Show(Count.ToString()); // using System.Windows;
23
}
}
Workshop
3
24