首先,新建工程(windows application)
然后,增加引用(mysql.data)
注意:根据使用.net版本的不同而选择mysql.data版本
之后,放置控件
3个textbox,2个combobox, 1个datagridview等等
密码框设置
下拉框设置
数据格设置
连接按钮代码:
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();
// 获得数据库列表
list cmd = new list();
cmd.add("show databases");
list list = getdatalist(cmd);
// 清空下拉框
cboxdbs.items.clear();
// 增加下拉框列表
foreach (string str in list)
cboxdbs.items.add(str);
}
catch(mysqlexception ex)
{
messagebox.show("没有找到数据库: " + ex.message);
}下拉框(数据库列表)
// 获得数据库列表
list cmdlist = new list();
cmdlist.add("use " + cboxdbs.selecteditem.tostring());
cmdlist.add("show tables");
list list = 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;运行效果:
操作步骤(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();
// 获得数据库列表
list cmd = new list();
cmd.add("show databases");
list list = getdatalist(cmd);
// 清空下拉框
cboxdbs.items.clear();
// 增加下拉框列表
foreach (string str in list)
cboxdbs.items.add(str);
}
catch(mysqlexception ex)
{
messagebox.show("没有找到数据库: " + ex.message);
}
}
private list getdatalist(list cmdlist)
{
list result = 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)
{
// 获得数据库列表
list cmdlist = new list();
cmdlist.add("use " + cboxdbs.selecteditem.tostring());
cmdlist.add("show tables");
list list = 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【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!