.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添加连接字符串:
None.gif < add name = " MySqlServer "  connectionString = " Data Source=127.0.0.1;User ID=root;Password=123;DataBase=BOOK;Charset=gb2312 " />

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

14ExpandedSubBlockEnd.gif            }

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

19InBlock.gif        catch
20ExpandedSubBlockStart.gifContractedSubBlock.gif        dot.gif{
21InBlock.gif            return 0;
22ExpandedSubBlockEnd.gif        }

23ExpandedBlockEnd.gif    }
获取数据:
 1 None.gif   public  DataSet GetDataSet( string  strSql)
 2 ExpandedBlockStart.gifContractedBlock.gif     dot.gif {
 3InBlock.gif        try
 4ExpandedSubBlockStart.gifContractedSubBlock.gif        dot.gif{
 5InBlock.gif            MySqlDataAdapter da = new MySqlDataAdapter(strSql, myConnection);
 6InBlock.gif            DataSet ds = new DataSet();
 7InBlock.gif            da.Fill(ds);
 8InBlock.gif            return ds;
 9ExpandedSubBlockEnd.gif        }

10InBlock.gif        catch
11ExpandedSubBlockStart.gifContractedSubBlock.gif        dot.gif{
12InBlock.gif            return null;
13ExpandedSubBlockEnd.gif        }

14ExpandedBlockEnd.gif    }

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值