




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C#.NET 数据库应用 闪电入门教程,Why such a fuss?,Simplicity is beauty - -2-,Why such a fuss?,“蜡笔小编”学习一年半,困惑一大堆: 如何在程序中访问数据库 如何将网页和数据库联系起来 .NET程序中如何显示和修改数据中的数据 。 其实很简单,只需要闪电84分钟/页。,Simplicity is beauty - -3-,目标项目:网页聊天室,目的:做一个简单的聊天网页 支持多人同时使用该页面进行聊天 练习: 向数据库添加数据; 在网页上显示数据。,Simplicity is beauty - -4-,数据库/RDBMS,就是“
2、表”们,记录,字段,Simplicity is beauty - -5-,下面在MySQL中建一个聊天用的表:QQMSG如果你不需要学习这些小儿科,猛击此按钮,首先安装免费的MySQL 可以从MySQL.com下载 也可以下载一个Apache+PHP+MySQL的捆绑包:AppServ AppServ下载地址: 下面假定您的本机(localhost)上已经运行了MySQL,在3306端口,Simplicity is beauty - -6-,其次下载一个MySQL管理工具,现在MySQL的管理工具名字叫: MySQL Workbench 下载: 这个工具可以方便地在数据库中建表、浏览、修改等等
3、。,Simplicity is beauty - -7-,上图!MySQL Workbench,点这个,Simplicity is beauty - -8-,双击test数据库, 选为当前schema, 然后“add table”,Simplicity is beauty - -9-,表名:qqmsg,然后:,Simplicity is beauty - -10-,建4个字段,确定,Simplicity is beauty - -11-,Simplicity is beauty - -12-,Simplicity is beauty - -13-,加点数据,Simplicity is beau
4、ty - -14-,保存,Simplicity is beauty - -15-,这个自动生成的SQL语句, 是我们学习的好模板!,Simplicity is beauty - -16-,好了,数据表准备好了,我们有一个MySQL数据库服务器运行于本机(localhost) 其中有一个数据库名为test Test中有一个表名为qqmsg Qqmsg包含4个字段,Lets roll!,Simplicity is beauty - -17-,ADO.NET是个神马?,“ADO.NET 是一组向 .NET Framework 程序员公开数据访问服务的类。” -msdn,数据库,应用程序,Simpli
5、city is beauty - -18-,访问数据库的一般步骤,使用Connection对象建立数据库连接 初始化Command对象,设置SQL命令 执行SQL并获得返回数据结果,不同的操作,以及不同的数据库,有不同的Connection和Command的实现类,例如:MySqlCommand。,Simplicity is beauty - -19-,说明1:Connection字符串,Connection的创建,使用ConnectionString参数,格式为: “server=host;user id=name;database=dbname;password=xxx” 例如: “ser
6、ver=localhost;user id=root;database=test;password=12345”,Simplicity is beauty - -20-,说明2:Command对象,Command一般代表一个要执行的SQL命令 例如 “select * from mytable”,Simplicity is beauty - -21-,说明3:执行Command,根据实际的Command的不同,Command执行后返回的结果也不同 例如可以为一个IDataReader的实现,然后可以从该DataReader中获取读到的数据。,Simplicity is beauty - -22
7、-,一个简单的例子:访问MySql数据库,MySql.Data.MySqlClient.MySqlConnection c = new MySql.Data.MySqlClient.MySqlConnection( server=localhost;user id=root;database=test;password=123“ ); c.Open(); MySqlCommand m = new MySqlCommand(select * from qqmsg, c); MySqlDataReader r = m.ExecuteReader();,请同志们认清形势,只有4行!,Simplici
8、ty is beauty - -23-,下面用一个窗体,运行一下这个小小4行程序,Simplicity is beauty - -24-,Simplicity is beauty - -25-,做一个窗体,包含一个button,一个多行文本框,Simplicity is beauty - -26-,打开“解决方案资源管理器”,Simplicity is beauty - -27-,添加对“MySQL.Data”的引用,Simplicity is beauty - -28-,为按钮编程,using MySql.Data.MySqlClient;,MySqlConnection c = new M
9、ySqlConnection( server=localhost;user id=root;database=test;password=123); c.Open(); MySqlCommand m = new MySqlCommand(select * from qqmsg, c); MySqlDataReader r = m.ExecuteReader(); String s = ; while (r.Read() s += r.GetString(0) + n + r.GetString(1) + n + r.GetString(2) + n + r.GetString(3) + n;
10、richTextBox1.Text = s; c.Close();,!,获得当前数据行第1列的数据,并使用String类型,Simplicity is beauty - -29-,这个例子够简单!,Simplicity is beauty - -30-,另一种访问MySql数据库的方法,Live long and prosper!,Theres always another way.,Simplicity is beauty - -31-,打开:视图-服务器资源管理器,Simplicity is beauty - -32-,新建一个数据连接,Simplicity is beauty - -33
11、-,Simplicity is beauty - -34-,添加BindingSource控件,并设置Datasource属性,Simplicity is beauty - -35-,Simplicity is beauty - -36-,Simplicity is beauty - -37-,Simplicity is beauty - -38-,Simplicity is beauty - -39-,添加DataGrid控件并绑定数据源,Simplicity is beauty - -40-,运行结果:竟然没有写代码!,Simplicity is beauty - -41-,再来看看如何在
12、网页上连接数据库,就一点点不同。,Simplicity is beauty - -42-,新建一个ASP.NET网站 (可参考ASP.NET闪电入门教程),Simplicity is beauty - -43-,打开服务器视图 添加一个数据库连接,Simplicity is beauty - -44-,Simplicity is beauty - -45-,Simplicity is beauty - -46-,在页面上面添加一个sql数据源,然后配置连接 指向,Simplicity is beauty - -47-,就选我们刚刚 配置好的连接,Simplicity is beauty - -
13、48-,注意MySQL不允许中括号,所以要手工写SQL语句,Simplicity is beauty - -49-,Simplicity is beauty - -50-,!,Simplicity is beauty - -51-,Simplicity is beauty - -52-,加一个DateList控件,指向我们配置好的数据源,Simplicity is beauty - -53-,Simplicity is beauty - -54-,编辑显示模板,Simplicity is beauty - -55-,其中发布日期字段(postat)修改一下显示格式,好看些!,Simplicit
14、y is beauty - -56-,Simplicity is beauty - -57-,这就是初步效果了!,Simplicity is beauty - -58-,Simplicity is beauty - -59-,填不进去东西!,仔细观察左上角,Simplicity is beauty - -60-,为这个多行文本框加一个“runat”属性并设置为“server”: runat=“server”,Simplicity is beauty - -61-,最后加一个“发表”按钮,Simplicity is beauty - -62-,Simplicity is beauty - -63
15、-,下面为按钮编写程序, 以提交留言,为简单起见,我们只放了一个文本框,不设置留言人的Email。 protected void Button1_Click(object sender, EventArgs e) String s = TextArea1.Value; SqlDataSource1.InsertCommand = insert into qqmsg (email, msg, postat) values (, + + s + , + + DateTime.Now + ); TextArea1.Value = SqlDataSource1.InsertCommand; SqlDa
16、taSource1.Insert(); ,Simplicity is beauty - -64-,Simplicity is beauty - -65-,Now Its Your Turn:,问题: 如果希望保存留言者的Email,应该如何修改程序?,Simplicity is beauty - -66-,嫌太简单,想做的复杂些?,Simplicity is beauty - -67-,复习一下:访问数据库的手工代码:,猛击,Simplicity is beauty - -68-,为Page_Load添加代码,删除页面中的DataGrid控件 双击页面空白处,为Page_Load编写事件响应代
17、码 别忘了添加引用MySQL.Data和 using MySql.Data.MySqlClient;,Simplicity is beauty - -69-,void Page_Load(object sender, EventArgs e) MySql.Data.MySqlClient.MySqlConnection c = new MySql.Data.MySqlClient.MySqlConnection( server=localhost;user id=root;database=test;password=123); c.Open(); MySqlCommand m = new M
18、ySqlCommand(select * from qqmsg, c); MySqlDataReader r = m.ExecuteReader(); while (r.Read() int id = r.GetInt16(id); String email = r.GetString(email); String msg = r.GetString(msg); String postat = r.GetString(postat); Response.Write( + id + + email +:); Response.Write( + msg + ); Response.Write();
19、 Response.Write(postat); Response.Write(); r.Close(); ,连接数据库,显示数据,获取数据,Simplicity is beauty - -70-,Simplicity is beauty - -71-,提交新留言还是原来的代码,原来的提交代码使用了 SqlDataSource 控件 用MySqlConnection来写代码!,Simplicity is beauty - -72-,1. 将 MySql.Data.MySqlClient.MySqlConnection c; 这个变量声明拿到函数外面,使之成为类变量,这样在按钮事件中就不用再次连
20、接了。 2. 按钮事件代码: protected void Button1_Click(object sender, EventArgs e) String msg = TextArea1.Value; String sql = insert into qqmsg (email, msg, postat) values (, + + msg + , + + DateTime.Now + ); MySqlCommand cmd = new MySqlCommand(sql, c); cmd.ExecuteNonQuery(); ,Simplicity is beauty - -73-,思考:为什
21、么出错,怎么解决?,这里有一个陷阱:你运行时候会出错! 异常:There is already an open DataReader associated with this Connection which must be closed first.,知道答案在。“全选69”,晚了,Simplicity is beauty - -74-,留言板做“聊天”用,别扭,功能需求:自动刷新最新的发言 实现途径: 1、用Ajax,进行局部刷新。 2、简单点的,嵌套一个IFrame ,设置frame页面的刷新时间 () 从而实现留言信息的自动刷新,Simplicity is beauty - -75-,我们采用第2种方法,先使用最简单的方法修改Default.aspx页面,只保留一个倒序显示的发言内容。,Simplicity is beauty - -76-,在页面中添加自动刷新的html,SqlDataSource1中的SQL改为: select * from qqmsg order by postat desc limit 10“ 在段中加入 ,Simplicity is beauty - -77-,页面运行结果(每5秒自动刷新
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年矿山无人作业技术在矿山环境监测中的应用与发展研究报告
- 乡村医生录用管理办法
- 企业科研预言管理办法
- 产品追溯标识管理办法
- 乡村规划建设管理办法
- 云南诊所备案管理办法
- 临朐农贸市场管理办法
- 人员教育培训管理办法
- 企业上市咨询管理办法
- 公司产品条码管理办法
- 环境科学与工程专业英语翻译第三版钟理
- JJF 1015-2014计量器具型式评价通用规范
- GB/T 8332-2008泡沫塑料燃烧性能试验方法水平燃烧法
- GB/T 20330-2006攻丝前钻孔用麻花钻直径
- GB/T 18033-2017无缝铜水管和铜气管
- 输血反应的发生及防治
- 湖北省仙桃市各县区乡镇行政村村庄村名居民村民委员会明细
- 中粮集团朝阳大悦城招商手册
- 钢板仓施工方案
- pcba检验标准最完整版
- 北京福赛尔V6891、V6851控制器(联动型)的调试
评论
0/150
提交评论