.Net+MySQL组合开发(二) 数据访问篇

一、建立数据库、表、添加数据
这里我们使用图形化操作的SQL Manager 2005 Lite for MySQL来建立数据,它的操作界面非常类似OFFICE软件,使用方便、很容量上手、下面开始建立数据库及表
单击"Creat New DataBase":新建DB

输入密码:


选择客户端编码为gb2312,防乱码;也可以在新建好的数据库右键选择"DataBase Registration Info"更改编码:

新建表:输入表名:

新建字段




点击加号,手动添加数据,点出对号,提交数据:

选择DDL选项,直接看到刚才操作的脚本;也可以不用上面的方式操作,直接写sql脚本来创建数据:

二、ADO.NET数据操作
推荐使用MySQL Connector Net 5.0.3
web.config添加连接字符串:
<add name="MySqlServer" connectionString="Data Source=127.0.0.1;User ID=root;Password=123;DataBase=BOOK;Charset=gb2312"/>

为了方便,把对数据的访问封装到一个类中:
 1// 执行sql 
 2public int ExecuteSql(string strSql, MySqlParameter [] myPar)
 3    {
 4        try
 5        {
 6            myConnection.Open();
 7            MySqlCommand cmd = new MySqlCommand(strSql, myConnection);
 8            if (myPar != null)
 9            {
10                foreach (MySqlParameter spar in myPar)
11                {
12                    cmd.Parameters.Add(spar);
13                }

14            }

15            int result = cmd.ExecuteNonQuery();
16            myConnection.Close();
17            return result;
18        }

19        catch
20        {
21            return 0;
22        }

23    }
获取数据:
 1 public DataSet GetDataSet(string strSql)
 2    {
 3        try
 4        {
 5            MySqlDataAdapter da = new MySqlDataAdapter(strSql, myConnection);
 6            DataSet ds = new DataSet();
 7            da.Fill(ds);
 8            return ds;
 9        }

10        catch
11        {
12            return null;
13        }

14    }

在页面中我们用一个gridview实现数据的读取、写入、编辑、删除等操作:

数据绑定:
1 //databind
2    protected void BindGrid()
3    {
4        DataSet ds = obj.GetDataSet("SELECT * FROM book ORDER BY bid");
5        GridView1.DataSource = ds;
6        GridView1.DataBind();
7        ds.Dispose();
8    }
添加数据:
 1 string strSQL = "INSERT INTO book (bname,author,publish) VALUES (?bname,?author,?publish)";
 2            MySqlParameter[] mysp =
 3            {
 4                new MySqlParameter ("?bname",MySqlDbType.VarChar ),
 5                new MySqlParameter ("?author",MySqlDbType.VarChar),
 6                new MySqlParameter ("?publish",MySqlDbType.VarChar)
 7            }
;
 8            mysp[0].Value = txtName.Text.Trim();
 9            mysp[1].Value = txtAuthor.Text.Trim();
10            mysp[2].Value = txtPublish.Text.Trim();
11            if (obj.ExecuteSql(strSQL, mysp) == 1)
12            {
13                Response.Write("<script>alert('提交成功');</script>");
14                BindGrid();
15                txtName.Text = txtAuthor.Text = txtPublish.Text = "";
16            }
注意参数符号是"?"而不是"@",这一点不同于sql server
其它编辑等操作代码等请下载文件
下载详细完整的代码文件/Files/chy710/MySQL_ADONET.rar
下篇预告:mysql开发中的乱码问题
posted @ 2007-02-02 11:52 chy710 阅读(5497) 评论(8) 编辑 收藏

 回复 引用   
#1楼 2007-02-02 17:07 fds2003[匿名][未注册用户]
MySqlClient还是蛮不错的,比起一些收费的商业组件好得多!最主要是它操作方式和SqlClient差不多了,有相同的接口!前段时间我用它将PetShop移植MySql的数据库上!
 回复 引用   
#2楼 2007-02-02 17:09 fds2003[匿名][未注册用户]
SQL Manager 2005 Lite for MySQL有个很大的特点就是SQL提示功能!它有个SQL SERVER版本,我都经常用它!SQL Manager 2005 for SQL Server

 回复 引用 查看   
#3楼 2007-02-02 20:26 charleschen      
用EMC的。。
 回复 引用   
#4楼 2007-10-21 10:42 阿锁[未注册用户]
请问,不可以直接绑定数据源到gridview吗,用sql server 2000都是可以直接配置数据源绑定的,不用写很多代码的;MySQL不可以这样吗??
 回复 引用 查看   
#5楼[楼主] 2007-10-24 17:37 chy710      
@阿锁
完全可以,请看http://www.cnblogs.com/chy710/archive/2007/10/10/919400.html
不过实际开发中,这种方法几乎用不上吧....

 回复 引用   
#6楼 2007-10-29 21:52 阿锁[未注册用户]
  你好,我己经安装ADO.NET Driver for MySQL (Connector/NET)了,在新建网站的时候,配置数据源时总没有MySQL Database可以选择;在新建项目时,有MySQL Database可以选择了,测试连接也成功了,但是就是没有数据出来!不知道为什么,.net和MySQL的结合真是痛苦啊!!
 回复 引用 查看   
#7楼[楼主] 2007-11-01 09:09 chy710      
@阿锁
没有MySQL Database可以选择(有时候是这样)
没有数据出来(应该是你的配置问题吧)

 回复 引用   
#8楼 2008-06-05 18:35 zuorenju[未注册用户]
new MySqlParameter ("?bname",MySqlDbType.VarChar )

看到你写的 MySqlParameter名称前面加的是"?",我同样在存储过程中用到时,怎么出错信息: "?m_bname not found in the collection"

急急急!!!!!!

恳请回复 .