数据库实验七_第1页
数据库实验七_第2页
数据库实验七_第3页
数据库实验七_第4页
数据库实验七_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

宁波工程学院数据库理论与技术课程实验报告学院:电子与信息工程学院专业: 计算机科学与技术年级:114实验时间:2013年5月29日组名: 组长:吴青云组员姓名: 薛祥清吴青云毛奥望邢锋 指导教师签字: 成绩: 实验七数据库连接实验一、实验目的1、了解数据库应用结构。2、掌握数据库接口,尤其通过ODBC访问数据库。3、掌握数据库编程过程尤其连接数据库、表现数据库。二、实验性质综合性实验三、实验导读参考教材第9章P204——P221,自己学习、一起讨论并编程实现。四、实验内容及核心代码使用C#的ADO.NET结合WPF进行开发数据库应用程序。ADO.NET是NET类库中用以操作数据库部分的总称。本次实验主要用SQLCommand类建立数据库的连接并用其对象记录SQL语句,通过这个类的方法直接在数据库的表中查询指定的记录、增加记录、删除记录、修改记录中的数据。

WPF界面设计界面依据jxgl_1数据库中course表进行设计,上方四个TextBox控件用以显示在DataGrid中被选中的字段,并且可以在相关的TextBox控件中修改数据属性值或者添加字段,结合更新按钮可以将更新后的数据保存到数据库中。刷新后即可看到修改后的数据库。下方的“删除选中项”按钮可以删除DataGrid中被选中的对象。在下方的TextBox控件中输入要查询的课号,点击“查询”即可查询数据库中相关的数据。SQLCommand类的数据连接1、 连接字符串:connectionString="datasource=;initialcatalog=jxgl_1;userid=sa;password=mine"2、 使用SQLCommand类方法连接数据库://执行insertupdata返回值为影响行数publicstaticintExecuteNonQuery(stringsql,paramsSqlParameter[]parameters){using(SqlConnectionconn=newSqlConnection(connStr)){〃执行SQL语句conn.Open();using(SqlCommandcmd=conn.CreateCommand()){cmd.CommandText=sql;cmd.Parameters.AddRange(parameters);returncmd.ExecuteNonQuery();〃对连接执行Transact-SQL语句并返回受影响的行数}}}〃执行查询结果为几条记录的sql语句publicstaticobjectExecuteScalar(stringsql,paramsSqlParameter[]parameters){using(SqlConnectionconn=newSqlConnection(connStr)){〃执行SQL语句conn.Open();using(SqlCommandcmd=conn.CreateCommand()){cmd.CommandText=sql;cmd.Parameters.AddRange(parameters);returncmd.ExecuteScalar();〃执行查询,并返回查询所返回的结果集中的第一行的第一列。忽视其他列或行}}}//dataset返回的是jxgi_i数据库course表publicstaticDataTableExecuteDataTable(stringsql,paramsSqlParameter[]parameter){using(SqiConnectionconn=newSqiConnection(connStr)){conn.Open();using(SqiCommandcmd=conn.CreateCommand()){〃执行SQL语句cmd.CommandText=sqi;cmd.Parameters.AddRange(parameter);〃将数据库中信息填充到DataSet类对象中SqiDataAdapteradapter=newSqiDataAdapter(cmd);DataSetdataset=newDataSet();adapter.Fiii(dataset);returndataset.Tabies[0];//由于cpno和ccredit是可空属性这里要判断publicstaticobjectFromDBvalue(objectvalue){if(value==DBNull.Value){returnnull;}else{returnvalue;}}3、利用SQL语句对数据库进行插入、添加、修改、删除操作://插入数据,更新数据,根据cno查询数据publicstaticintInset_Data(Coursecourse){if((int)SqlHelper.ExecuteScalar("selectcount(cno)fromcoursewherecno=@cno",newSqlParameter("@cno",o))<=0)〃返回指定cno的字段个数,不存在插入新字段,存在修改指定字段。{returnSqlHelper.ExecuteNonQuery("insertintoCourse(cno,cname,cpno,ccredit)values(@cno,@cname,@cpno,@ccredit)",newSqlParameter("@cno",o),newSqlParameter("@cname",SqlHelper.ToDBvalue(ame)),newSqlParameter("@cpno",SqlHelper.ToDBvalue(course.cpno)),newSqlParameter("@ccredit",SqlHelper.ToDBvalue(course.ccredit)));}else{MessageBoxResultmr=MessageBox.Show(o+"的记录已经存在!是否更新","更新数据",MessageBoxButton.OKCancel);if(mr==MessageBoxResult.OK){returnUpdata(course);}else{return0;//更新数据库信息publicstaticintUpdata(Coursecourse){returnSqlHelper.ExecuteNonQuery("updateCoursesetcno=@cno,cname=@cname,cpno=@cpno,ccredit=@ccreditwherecno=@cno",newSqlParameter("@cno",o),newSqlParameter("@cname",SqlHelper.ToDBvalue(ame)),newSqlParameter("@cpno",SqlHelper.ToDBvalue(course.cpno)),newSqlParameter("@ccredit",SqlHelper.ToDBvalue(course.ccredit)));}//删除数据库信息publicstaticintdelete_Data(Coursecourse){returnSqlHelper.ExecuteNonQuery("deletefromCoursewherecno=@cno",newSqlParameter("@cno",o));}//查询数据库信息publicstaticCourseQuery_Data(stringcno){DataTabledt=SqlHelper.ExecuteDataTable("select*fromCoursewherecno=@cno",newSqlParameter("@cno",cno));Coursecourse=newCourse();if(dt.Rows.Count<=0){returnnull;}elseif(dt.Rows.Count>1){thrownewException(”数据库发生异常!");}else{DataRowrow=dt.Rows[0];o=(string)row["cno"];ame=(string)SqlHelper.FromDBvalue(row["cname"]);course.cpno=(string)SqlHelper.FromDBvalue(row["cpno"]);course.ccredit=(short?)SqlHelper.FromDBvalue(row["ccredit"]);returncourse;//获取数据库内全部课程信息publicstaticCourse[]GetAll(){DataTabledt=SqlHelper.ExecuteDataTable("select*fromcourse");Course[]courses=newCourse[dt.Rows.Count];for(inti=0;i<dt.Rows.Count;i++){DataRowrow=dt.Rows[i];Coursecourse=newCourse();o=(string)row["cno"];ame=(string)row["cname"];course.cpno=(string)SqlHelper.FromDBvalue(row["cpno"]);course.ccredit=(short?)SqlHelper.FromDBvalue(row["ccredit"]);courses[i]=course;}returncourses;}五、实验作业1、总结数据库编程的特点。使用ADO.NET提供的SQLCommand类对连接数据库编程代码简单易懂,并且可以通过SQ

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论