版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实用标准文案试验十 数据库编程1、新建项目项目名称为“ dbgl ”。2、设计如下窗体:窗体上放置的控件有: 7 个按钮,一个 groupBox,4 个 label ,4 个 textBox , 1 个 pictureBox 和 1 个 dataGridView 。3、编写连接数据库的类鼠标单击菜单栏上的 “项目”选择“项目”菜单中的“添加类”命令,为“dbgl ” 项目添加连接数据库的类,类名是: DbConnection 。如下图所示:精彩文档实用标准文案DbConnection 类的代码如下图所示:注意需要引入 System.Data.SqlClient 名称空间。4、编写操作数据的类为
2、“ dbgl ”项目添加操作数据的类,该类名为“DbOperation ”。首先,实例化“ DbConnection ”类,代码如下:其次,编写方法 getdataset ,该方法返回一个 DataSet 对象的数据集。代码如下:接着编写执行 SQL语句的方法“ sqlcmd”。该方法的代码如下:精彩文档实用标准文案最后编写方法“ GetTable ”,该方法用于返回一个 DataTable 类型的数据。代码如下:5、为窗体编写代码,完成对数据库操作的功能。在窗体的代码视图中:(1)定义一个窗体级别的 BindingManagerBase 类变量 mybind 用来管理多个控件绑定到一个数据源
3、,以便实现同步操作。代码如下:(2)在窗体的 Load 事件中编写,为相关 控件绑定相数据。代码如下:精彩文档实用标准文案(3)为“第一条”按钮控件编写代码:代码如下图所示:(4)为“下一条”按钮控件编写代码:代码如下图所示:(5)为“上一条”按钮控件编写代码:代码如下图所示:(6)为“最后一条”按钮控件编写代码:代码(略)。自己编写精彩文档实用标准文案(7)给“新增”按钮编写代码,完成添加一条记录首先,给项目添加一个窗体,窗体名称为“FormBase”。窗体中设计界面如下:该窗体的代码如下:1)引入红色框内的名称空间:2)定义窗体级变量,用来表示图片,代码如红色框内:3)编写显示图片的方法:
4、代码如下:精彩文档实用标准文案4)为“添加照片”的标签的单击事件编写如下代码:5)为“确定”按钮的单击事件编写如下代码,保存数据到数据库。privatevoid button1_Click(objectsender,EventArgs e)stringxh =this .textBox1.Text.Trim();stringxm =this .textBox2.Text.Trim();stringxb =this .textBox3.Text.Trim();stringjszh =this .textBox4.Text.Trim();DbOperationdbop =new DbOperati
5、on ();if(xh ="" )MessageBox.Show( " 学号不能为空!" );return ;elsestringsql ="insert into学生信息表 ( 学号 , 姓名 , 系别 , 借书证号 ) values('"+ xh +"','"+ xm +"','"+ xb +"','"+ jszh +"')"dbop.sqlcmd(sql);if(pictureName
6、!="" )精彩文档实用标准文案DbConnection dbconn =new DbConnection ();SqlConnectionsqlconnection1 = dbconn.getcon();FileStreamstream =new FileStream (pictureName,FileMode .Open,FileAccess .Read);buffer =new byte stream.Length;stream.Read(buffer, 0, (int )stream.Length);stream.Close();/ 图片写入数据库stringmyS
7、electQuery= "UPDATE 学生信息表set照片 =imgdata where 学号 ='"+ xh+"'"SqlCommandmyCommand = new SqlCommand(mySelectQuery, sqlconnection1);SqlParameterparamData =new SqlParameter ( "imgdata" ,SqlDbType.Image);paramData.Value = buffer;myCommand.Parameters.Add(paramData);myC
8、ommand.Connection.Open();myCommand.ExecuteNonQuery();* 以下是新增的内容 *为了防止用户连续单击“确定”按钮而引发异常,我们需要修改上面的代码:修改的思路是一旦数据保存成功,就清空文本框的值。具体代码如下:注意新增的代码已经加粗。privatevoid button1_Click(objectsender,EventArgs e)stringxh =this .textBox1.Text.Trim();stringxm =this .textBox2.Text.Trim();stringxb =this .textBox3.Text.Tri
9、m();stringjszh =this .textBox4.Text.Trim();DbOperationdbop =new DbOperation ();if(xh ="" )MessageBox.Show( " 学号不能为空!" );return ;elsetrystringsql ="insert into学生信息表 ( 学号 , 姓名 , 系别 , 借书证号 ) values('"+xh +"','"+ xm +"','"+ xb +"
10、','"+ jszh +"')"精彩文档实用标准文案dbop.sqlcmd(sql);catchfinallythis .textBox1.Text ="" ;this .textBox2.Text ="" ;this .textBox3.Text ="" ;this .textBox4.Text ="" ;if(pictureName !="" )DbConnection dbconn =new DbConnection ();SqlCon
11、nectionsqlconnection1 = dbconn.getcon();FileStreamstream =new FileStream (pictureName,FileMode .Open,FileAccess .Read);buffer =new byte stream.Length;stream.Read(buffer, 0, (int )stream.Length);stream.Close();/ 图片写入数据库stringmySelectQuery= "UPDATE 学生信息表set照片 =imgdata where 学号 ='"+ xh+&q
12、uot;'"SqlCommandmyCommand = new SqlCommand(mySelectQuery, sqlconnection1);SqlParameterparamData =new SqlParameter ( "imgdata" ,SqlDbType.Image);paramData.Value = buffer;myCommand.Parameters.Add(paramData);myCommand.Connection.Open();myCommand.ExecuteNonQuery();this .pictureBox1.Im
13、age =null ;6、为“关闭”按钮编写如下代码,实现窗口关闭privatevoid button2_Click(objectsender,EventArgs e)this .Close();7、当用户添加完数据,关闭窗口。主窗口应该重新检索数据,把新增的数据显示出来。为了实现该功能,我们返回到主窗口,找到打开 FormBase 窗口的代码:精彩文档实用标准文案即:privatevoid button1_Click(objectsender,EventArgs e)FormBase fb =new FormBase();fb.ShowDialog();修改上面的代码:修改后的代码:Form
14、Base fb =new FormBase();fb.ShowDialog();if(fb.ShowDialog() =DialogResult.Cancel)/ 重新绑定数据DbOperationdbopt =new DbOperation ();stringsql ="select * from学生信息表 " ;DataTable db = dbopt.GetTable(sql);dataGridView1.DataSource = db;/ 当单击某一单元格时,选中该行this.dataGridView1.SelectionMode =DataGridViewSele
15、ctionMode .FullRowSelect;mybind =this .BindingContextdb;this.textBox1.DataBindings.Clear();this.textBox2.DataBindings.Clear();this.textBox3.DataBindings.Clear();this.textBox4.DataBindings.Clear();this.textBox1.DataBindings.Add("text", db," 学号");this.textBox2.DataBindings.Add(&quo
16、t;text", db," 姓名");this.textBox3.DataBindings.Add("text", db," 系别");this.textBox4.DataBindings.Add("text", db," 借书证号 " );/this.pictureBox1.DataBindings.Add("text", db, "照片 ");8、在主窗口中为了能够正确显示图片,我们需要增加一个 imageview() 方法来显示图片。该方法
17、属于窗体。方法的代码如下:privatevoid imageview()pictureBox1.SizeMode =PictureBoxSizeMode .StretchImage;/图片显示模式DbConnection connstr =new DbConnection ();SqlConnectionconn = connstr.getcon();conn.Open();SqlCommandcmd =new SqlCommand( "select照片 from学生信息表where学号 ='"+this .textBox1.Text.Trim() +"&
18、#39;", conn);trybyte b = (byte )cmd.ExecuteScalar();if(b.Length > 0)精彩文档实用标准文案MemoryStream stream =new MemoryStream(b,true );stream.Write(b, 0, b.Length);pictureBox1.Image =new Bitmap (stream);stream.Close();elsepictureBox1.Refresh();catchfinallycmd.Connection.Close();conn.Close();有了该方法后,我们需
19、要在其他地方调用该方法。需要调用的地方有: 注意要加代码的地方已经加粗。( 1)privatevoid Form1_Load( objectsender,EventArgs e)/ 为 dataGridView1 绑定数据DbOperationdbopt =new DbOperation ();stringsql ="select * from学生信息表 " ;DataTable db = dbopt.GetTable(sql);dataGridView1.DataSource = db;/ 当单击某一单元格时,选中该行this.dataGridView1.Selectio
20、nMode =DataGridViewSelectionMode .FullRowSelect;mybind =this .BindingContextdb;this.textBox1.DataBindings.Add("text", db," 学号");this.textBox2.DataBindings.Add("text", db," 姓名");this.textBox3.DataBindings.Add("text", db," 系别");this.textBox4.
21、DataBindings.Add("text", db," 借书证号 " );/this.pictureBox1.DataBindings.Add("text", db, "照片 ");imageview();( 2)privatevoid button4_Click(objectsender,EventArgs e)精彩文档实用标准文案pictureBox1.Image =null ;if(mybind.Position = 0)MessageBox.Show( " 已经是第一条了!" );r
22、eturn ;elsemybind.Position = 0;imageview();privatevoid button5_Click(objectsender,EventArgs e)pictureBox1.Image =null ;if(mybind.Position = (mybind.Count-1)MessageBox.Show( " 已经是最后一条了!" );return ;elsemybind.Position = mybind.Position+1;imageview();privatevoid button6_Click(objectsender,Eve
23、ntArgs e)pictureBox1.Image =null ;if(mybind.Position = 0)MessageBox.Show( " 已经是第一条了!" );return ;elsemybind.Position = mybind.Position - 1;imageview();(3)privatevoid button1_Click(objectsender,EventArgs e)FormBase fb =new FormBase();精彩文档实用标准文案fb.ShowDialog();if(fb.ShowDialog() =DialogResult
24、.Cancel)/ 重新绑定数据DbOperationdbopt =new DbOperation ();stringsql ="select * from学生信息表 " ;DataTable db = dbopt.GetTable(sql);dataGridView1.DataSource = db;/ 当单击某一单元格时,选中该行this.dataGridView1.SelectionMode =DataGridViewSelectionMode .FullRowSelect;mybind =this .BindingContextdb;this.textBox1.Da
25、taBindings.Clear();this.textBox2.DataBindings.Clear();this.textBox3.DataBindings.Clear();this.textBox4.DataBindings.Clear();this.textBox1.DataBindings.Add("text", db," 学号");this.textBox2.DataBindings.Add("text", db," 姓名");this.textBox3.DataBindings.Add("t
26、ext", db," 系别");this.textBox4.DataBindings.Add("text", db," 借书证号 " );imageview();到目前为止, 添加记录已经差不多了, 如果还 bug 的话,希望同学们自己动手去修改。接下来我们要做数据的编辑。(9)当我们单击 “编辑” 按钮或或双击 dataGridView1 的一行时,打开编辑记录窗口。实现步骤如下:首先,给项目添加一个窗体,窗体名称为“FormEdit ”。窗体中设计界面如下精彩文档实用标准文案为了能够传递参数,我们编写一个静态类 info
27、 ,向项目中添加一个类,类名是: info为类 info编写代码:代码如下:其次、双击“编辑”按钮编写如下代码:接下来我们在编辑窗口的Load事件中编写如下代码:privatevoid FormEdit_Load(objectsender,EventArgs e)this .textBox1.Text =info .xh;this .textBox1.Enabled =false ; / 学号不能修改精彩文档实用标准文案this.textBox2.Text =info.xm;this.textBox3.Text =info.xb;this.textBox4.Text =info.jszh;th
28、is.textBox4.Enabled =false ; / 借书证号不能修改info.xh ="" ;info.xm =""info.xb =""info.jszh ="" ;/ 下面的代码获得图片pictureBox1.SizeMode =PictureBoxSizeMode .StretchImage;DbConnection connstr =new DbConnection ();SqlConnectionconn = connstr.getcon();conn.Open();SqlCommandcmd
29、=new SqlCommand( "select照片 from学生信息表where学号 ='"+this .textBox1.Text.Trim() +"'", conn);trybyte b = (byte )cmd.ExecuteScalar();if(b.Length > 0)MemoryStream stream =new MemoryStream(b,true );stream.Write(b, 0, b.Length);pictureBox1.Image =new Bitmap (stream);stream.Close
30、();elsepictureBox1.Refresh();catch/MessageBox.Show(ex.ToString();/MessageBox.Show("该学生还没有附件扫描哦!");finallycmd.Connection.Close();conn.Close();精彩文档实用标准文案为了保存数据先定义窗体变量用来保存图片:他们是:然后编写一个函数用来显示图片为“修改图片”标签编写打开图片代码:最后,为编辑窗口的“确定”按钮编写代码保存数据privatevoid button1_Click(objectsender,EventArgs e)stringsql
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 天府新区信息职业学院《世界经典建筑解析》2023-2024学年第一学期期末试卷
- 公司装修发票合同范例
- 系统训练幼儿体能课程设计
- 到货合同范例
- 单位电路施工合同范例
- 农机合伙合同范例
- 县衙汉服租借合同范例
- 第六章 爱护植被,绿化祖国教学实录 2023-2024学年人教版生物七年级上册
- 中介厂区驻厂合同范例
- 单位写合同范例
- 危急值的考试题及答案
- 法务岗位招聘面试题及回答建议(某大型央企)2024年
- 职业生涯规划-体验式学习智慧树知到期末考试答案章节答案2024年华侨大学
- 2024年华润电力投资有限公司招聘笔试参考题库含答案解析
- 湘少版六年级英语上册《Unit 12 第二课时(Part CPart D)》课堂教学课件公开课
- 国开电大《工程数学(本)》形成性考核作业5答案
- 邻近营业线施工方案)
- 危险化学品储存安全检查表(共4页)
- 扬州市梅岭二年级数学上册期末复习试卷(一)及答案
- 新西兰旅行计划日行程单签证
- 管道保护工试题5.实际操作题
评论
0/150
提交评论