使用Connection对象连接数据库
创建数据库连楼,使用 Comecio,对象(当使用 MJSOL 数据库时,为 MrSqCommecion 对象),Connection的构造方法和方法描述如下。
1.构造方法(使用一个参数的)
Connetion (Connectionsmino. comecionSring是连接字符串,连接字符串的参数主要包括服务器、 数据库用户名、数据库密码、数据库名。
构造连接字符串有以下两种方法(假定连接字符串名称为 conStr):(1) 直接构造,格式如下:
string constr="server=服务器名称;user id=登录数据库的用户名;password=登录数据库的密码;database=数据库名称";
(2)在配置文件中存储连接字符串,格式如下:
<connectionstrings>
<add name="连接字符串名称"connectionstring="server=服务器名称;user id=登
录数据库的用户名;password=登录数据库的密码;database=数据库名称”>
</connectionstrings>
在页面获取配置文件中的连接字符串,格式如下:
string constr = ConfigurationManager.connectionstrings[”连接字符串名称"].Connectionstring;
2.方法
1Open():打开数据库。
2 Close):关闭数据库。
操作步骤:
(1) 启动VS,新建一个 Windows 窗体应用程序 StudentManageApplication。
(2)双击Forml.cs, 切换到设计视图,从工具栏中拖曳一个Button 控件到窗体设计区
并调整控件大小进行布局。
(3)在窗体设计区中右击窗体 FormI 和每一个控件,设置窗体和控件的相关属性。表6-4列出了窗体及控件属性。
窗体和控件 | 属性 | 属性值 |
Form1 | text | 学生信息管理 |
button1 | Name | btnConnect |
Text | 连接数据库 |
(4)右击 SudentManageApplication 项目,添加 MySql.Data.dll引用,并在代码窗口中添加引用语句,程序代码如下:
using mysql.Data.mysqllclient
(5)双击“连接数据库”按钮,为其添加单击事件处理程序,程序代码如下:
private void btnConnect_Click(object sender, EventArgs e)
{
//创建连接字符串
string constr = "server=localhost;user id=root;password=123456;database=studentmanage";
MySglConnection con = new MySqlConnection(constr);con.Open();
MessageBox.Show("数据库连接成功!");
con.Close();
}
以上代码的功能是,首先定义连接字符串 conStr, 其中4个参数分别是服务器名称、登录数据库的用户名、登录数据库的密码以及数据库名称:然后创建一个 MySqlConnection 对象,其中连接字符串 conStr 作为构造方法的参数,并通过 MySqlConnection 对象调用OpenO方法来打开数据库,并提示用户“数据库连接成功!”;最后关闭连接。
(6)在解决方案资源管理器中右击 StudentManageApplication 项目,将其设为启动项目, 编译并运行。
用 Command 对象增加、修改和删除数据
使用 Command 对象增加、修改和删除数据库数据时,首先建立数据库连接;然后创
建 Command 对象,设置它的 CommandText 和 Connection 属性,并使用 Command对象的Parameters 属性设置输入参数;最后使用 Command 对象的 ExecuteNonQuery0方法执行数据增加、修改和删除命令。
【例6-3】增加、修改和删除学生信息。
【操作步骤】
(1) 启动 VS, 打开 Windows 窗体应用程序 StudentManageApplication。
(2)双击 Forml.cs,切换到设计视图,修改 FormI 窗体,从工具栏中拖曳3个 Button 控件到窗体设计区,并调整控件大小进行布局。
(3)在窗体设计区中右击窗体 Forml 和每一个控件,设置窗体和控件的相关属性。表6-6列出了新增控件属性。
控件 | 属性 | 属性值 |
button4 | Name | btnInsert |
Text | 增加 | |
button5 | Name | btnUpdate |
Text | 修改 | |
button6 | Name | btnDelete |
Text | 删除 |
(4) 双击“增加”按钮,为其添加单击事件处理程序,程序代码如下:
private void btnInsert_Click(object sender, EventArgs e)
{
string sex ="0";
if (rdbFemale.Checked )
{
Sex =
}
MySqlConnection con = new MySqlConnection(constr);
MySqlCommand cmd- new MySqlCommand ("insert 3 into
(num, name, sex) values (@num, @name, @sex)",con);
cmd.Parameters.AddWithvalue ("@num", null);
cmd.Parameters.AddWithValue ("@name", txtName .Text );
cmd.Parameters.AddWithValue("@sex", sex);
con.Open();
cmd.ExecuteNonQuery();
con.close();
MessageBox.Show("成功增加一条数据!");
}
以上代码的功能是,使用 MySglCommand对象实现数据的添加,其中 Command 对象中的SOL 语向中使用的参数,参数使用“@参数名”进行标识。例如,语句“MySqlCommand cmd = new MySqlCommand("insert into studentInfo(num, name, sex) values(@num, @name.@sex)", con);”中的@num、@name 和@sex 都是参数,分别代表学生的3项信息。定义参数后,需要将参数添加到 Command 对象的参数集合中并给参数赋值。例如,“cmd.Parameters.AddWithValue("@name", txtName .Text );”是将姓名文本框的值赋给参数@name.(5)双击“修改”按钮,为其添加单击事件处理程序,程序代码如下:
private void btnUpdate Click(object sender, EventArgs e)
{
string sex -"0";
if (rdbFemale.Checked)
{
sex = "1";
}
MySqlConnection con 프 new MySqlConnection(conStr);
MysqlCommand cmd·- nev MysqlCommand ("update studentInfo-set -name=@name, sex=@sex where num=enum",con);
cmd.Parameters.Addwithvalue ("@name", txtName.rext);
cmd.Parameters.AddwithValue ("@sex", sex); olicd
cmd. Parameters.AddwithValue ("@nun", Convert.ToInt32 (txtNum.Text));
con.open();
cmd.ExecuteNonQuery();
con.Close();
MessageBox.Show("成功修改一条数据!");
}
(6) 双击“删除”按钮,为其添加单击事件处理程序,程序代码如下:
private void btnDelete Click (object sender, EventArgs e)
{
MySglConnection con = new MySqlconnection(conStr);
MySqlCommand cmd = new MySqlCommand("delete from studentInfo
where
num=@num", con);
cmd.Parameters.Addwithvalue ("@num",Convert.ToInt32 (txtNum.Text));con.Open();
cmd.ExecuteNonQuery();
con.Close();
MessageBox.Show("成功删除一条数据!");
}
(7)编译并运行