MySQL Connector/Net 的简单使用 首先,新建工程(Windows Application) 然后,增加引用(MySql.Data) 注意:根据使用.net版本的不同而选择MySql.Data版本 之后,放置控件 3个TextBox,2个ComboBox, 1个DataGridView等等 密码框设置 下拉框设置 数据设置 连接

MySQL Connector/Net 的简单使用

首先,新建工程(Windows Application)

100849277.jpg

然后,增加引用(MySql.Data)

100849278.jpg

100849279.jpg

注意:根据使用.net版本的不同而选择MySql.Data版本

之后,放置控件

3个TextBox,2个ComboBox, 1个DataGridView等等

100849280.jpg

100849281.jpg

密码框设置

100849282.jpg

下拉框设置

100849283.jpg

数据格设置

连接按钮代码:

string connStr = string.Format("server={0};user id={1}; password={2}; database=mysql; pooling=false",

edtSrv.Text, edtUser.Text, edtPwd.Text);

try

{

conn = new MySqlConnection(connStr);

conn.Open();

// 获得数据库列表

Listcmd = new List();

cmd.Add("SHOW DATABASES");

Listlist = getDataList(cmd);

// 清空下拉框

cBoxDBs.Items.Clear();

// 增加下拉框列表

foreach (string str in list)

cBoxDBs.Items.Add(str);

}

catch(MySqlException ex)

{

MessageBox.Show("没有找到数据库: " + ex.Message);

}

下拉框(数据库列表)

// 获得数据库列表

ListcmdList = new List();

cmdList.Add("USE " + cBoxDBs.SelectedItem.ToString());

cmdList.Add("SHOW TABLES");

Listlist = getDataList(cmdList);

// 清空下拉框

cBoxTables.Items.Clear();

// 增加下拉框列表

foreach (string str in list)

cBoxTables.Items.Add(str);

下拉框(数据表列表)

// 获得数据表名称

string tableName = cBoxTables.SelectedItem.ToString();

// 设置数据桥

dataAdapter = new MySqlDataAdapter("Select * from " + tableName, conn);

// DataSet

sqlCmdBuilder = new MySqlCommandBuilder(dataAdapter);

// 建立数据表

table = new DataTable(tableName);

// 填充数据表到数据桥

dataAdapter.Fill(table);

// 指定数据源

dataGridView1.DataSource = table;

运行效果:

100849284.jpg

操作步骤(1、2、3)

开发环境: VS2005

连接器(For .net):V6.8.3

Form1.cs

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

using MySql.Data.MySqlClient;

namespace testMySQL

{

public partial class frmain : Form

{

private MySqlConnection conn;

private DataTable table;

private MySqlDataAdapter dataAdapter;

private MySqlCommandBuilder sqlCmdBuilder;

public frmain()

{

InitializeComponent();

}

private void btnConn_Click(object sender, EventArgs e)

{

//

string connStr = string.Format(

"server={0}; user id={1}; password={2}; database=mysql; pooling=false",

edtSrv.Text, edtUser.Text, edtPwd.Text);

try

{

conn = new MySqlConnection(connStr);

conn.Open();

// 获得数据库列表

Listcmd = new List();

cmd.Add("SHOW DATABASES");

Listlist = getDataList(cmd);

// 清空下拉框

cBoxDBs.Items.Clear();

// 增加下拉框列表

foreach (string str in list)

cBoxDBs.Items.Add(str);

}

catch(MySqlException ex)

{

MessageBox.Show("没有找到数据库: " + ex.Message);

}

}

private ListgetDataList(ListcmdList)

{

Listresult = new List();

// SQL数据读取器

MySqlDataReader dataReader = null;

// SQL命令执行器

MySqlCommand sqlCmd = new MySqlCommand();

// 设置SQL命令执行器的连接

sqlCmd.Connection = conn;

try

{

// 执行的SQL命令

foreach (string cmd in cmdList)

{

sqlCmd.CommandText = cmd;

sqlCmd.ExecuteNonQuery();

}

//

dataReader = sqlCmd.ExecuteReader();

while(dataReader.Read())

{

string strDbName = dataReader.GetString(0);

result.Add(strDbName);

}

}

catch (MySqlException ex)

{

MessageBox.Show("读取数据失败: " + ex.Message);

}

finally

{

if (dataReader != null)

dataReader.Close();

}

return result;

}

private void cBoxDBs_SelectedIndexChanged(object sender, EventArgs e)

{

// 获得数据库列表

ListcmdList = new List();

cmdList.Add("USE " + cBoxDBs.SelectedItem.ToString());

cmdList.Add("SHOW TABLES");

Listlist = getDataList(cmdList);

// 清空数据库列表

cBoxTables.Items.Clear();

// 增加下拉框列表

foreach (string str in list)

cBoxTables.Items.Add(str);

}

private void cBoxTables_SelectedIndexChanged(object sender, EventArgs e)

{

// 获得数据表名称

string tableName = cBoxTables.SelectedItem.ToString();

// 设置数据桥

dataAdapter = new MySqlDataAdapter("Select * from " + tableName, conn);

// DataSet

sqlCmdBuilder = new MySqlCommandBuilder(dataAdapter);

// 建立数据表

table = new DataTable(tableName);

// 填充数据表到数据桥

dataAdapter.Fill(table);

// 指定数据源

dataGridView1.DataSource = table;

}

}

}

FAQ:

1. Unable to convert MySQL date/time value to System.DateTime

出现原因:

DateTime列含有“0000-00-00”(YYYY-mm-dd)或者“0000-00-00 00:00:00”(YYYY-mm-dd HH:mm:ss)数据

解决办法:

在连接串格式中增加“Convert Zero Datetime=True”

server={0}; user id={1}; password={2}; database=mysql; pooling=false; Convert Zero Datetime=True

f68f2add0b68e4f9810432fce46917b7.png

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐