1、Web实验三访问数据库160348冯晓红资料贵州大学实验报告学院:计算机科学与技术 专业:软件工程 班级:软件123姓名冯晓红学号1208060348实验组实验时间2014-04-21指导教师王晓鹏成绩实验项目名称实验3 访问数据库实验目的1、熟练掌握ADO.NET的操作对象。2、熟练运用数据访问技术对数据库进行操作。实验要求1、源程序清单。2、程序运行结果。3、调试过程中遇到的问题和解决的方法。实验原理ADO.NET数据库访问、程序设计实验环境Vs2010实验步骤1、 在Sql2008中建立GuestBook数据库,并建立GuestBookInfo表格。2、 利用设计留言界面和查看留言界面实
2、验内容(此处主要为功能的演示,具体后台代码见实验数据部分。)1、 数据库建立:1、 留言部分:1)界面布局:2)留言功能:2、 查看留言部分:1)界面布局2)核心功能:数据绑定到GirdView并显示:数据的升序降序:(可按编号、姓名、时间升降序,此处演示按编号降序)留言内容过长时以“.”省略:查看留言功能:点击某一行的查看连接,则可查看改行留言具体内容实验数据项目完整代码: 1、 数据库访问:(SqlHelper类)此部分完整代码: 主要是使用了以前在其他课程设计的时候封装的SqlHelper类,这里列出几个用到的方法的核心代码:1)在web.config文件里面添加连接字符串,然后在Sql
3、Helper里面读取:private static string connectionString = ConfigurationManager.ConnectionStringsconnStr.ConnectionString; private static string dbName = ConfigurationManager.AppSettingsmyDBName; 2)基本的增、删、改功能: public static bool ExecuteNonQuery(string sql, Dictionary parameters) SqlConnection con = new Sql
4、Connection(); try con.ConnectionString = connectionString; if (con.State = System.Data.ConnectionState.Closed) con.Open(); SqlCommand cmd = new SqlCommand(); cmd.Connection = con; cmd.CommandText = sql; if (parameters != null) foreach (var item in parameters) cmd.Parameters.AddWithValue(item.Key, it
5、em.Value); /cmd.ExecuteNonQuery(); /返 回受 影响的行数 return cmd.ExecuteNonQuery() 0; /return cmd.ExecuteNonQuery()0; catch (Exception) throw; finally if (con.State = System.Data.ConnectionState.Open) con.Close(); public static bool ExecuteNonQuery(string sql) return ExecuteNonQuery(sql, null); 3)得到DateTab
6、le的方法:public static DataTable GetDataTable(string sql, Dictionary parameters) SqlConnection con = new SqlConnection(); try con.ConnectionString = connectionString; /if (con.State= System.Data.ConnectionState.Closed)适 配器 会 根 据具体需要打开和关闭数据库 / / con.Open(); / SqlCommand cmd = new SqlCommand(); cmd.Conne
7、ction = con; cmd.CommandText = sql; cmd.CommandType = System.Data.CommandType.Text; if (parameters != null) foreach (var item in parameters) cmd.Parameters.AddWithValue(item.Key, item.Value); SqlDataAdapter da = new SqlDataAdapter();/创 建 一 个适 配器 ,它 会 根 据具体需要打 开和 关 闭 数 据 库 da.SelectCommand = cmd; Dat
8、aTable dt = new DataTable(); da.Fill(dt); return dt; catch (Exception) throw; public static DataTable GetDataTable(string sql) return GetDataTable(sql, null); 4)获取首行首列的值:public static object ExecuteScalar(string sql, Dictionary parameters) using (SqlConnection con = new SqlConnection() con.Connectio
9、nString = connectionString; if (con.State = System.Data.ConnectionState.Closed) con.Open(); SqlCommand cmd = new SqlCommand(); cmd.Connection = con; cmd.CommandText = sql; if (parameters != null) foreach (var item in parameters) cmd.Parameters.AddWithValue(item.Key, item.Value); object r = cmd.Execu
10、teScalar();/返回查询结果表中首行首列的值 return r;2、 网页核心代码:此部分完整代码: 1) 留言按钮核心代码: protected void btnSave_Click(object sender, EventArgs e) if (txtMsg.Text = string.Empty | txtName.Text = string.Empty) Response.Write(alert(姓名或内容不能为空);); else string sqlStr = Insert into GuestBookInfo values(name,details,time,back);
11、 System.Collections.Generic.Dictionary parameters = new Dictionary(); parameters.Add(name, txtName.Text); parameters.Add(details, txtMsg.Text); parameters.Add(time, DateTime.Now); parameters.Add(back, 1); bool result = SMMS.Common.DBHelp.SqlHelp.ExecuteNonQuery(sqlStr, parameters); if (result = true
12、) Response.Write(alert(留言成功);); btnReset_Click(null, null); 以下部分完整代码: 2) 绑定数据核心代码:private void Bind() try string sqlStr = Select * from GuestBookInfo; System.Data.DataTable dt = SMMS.Common.DBHelp.SqlHelp.GetDataTable(sqlStr); System.Data.DataView dataView = dt.DefaultView; string sortStr = (string)
13、ViewStateSortOrder + + (string)ViewStateOrderDire;/SortOrder by an expression dataView.Sort = sortStr; gdvMsgs.DataSource = dt; gdvMsgs.DataKeyNames = new string ID ;/主键 gdvMsgs.DataBind(); ShortMsg(); catch Response.Write(alert(数y据Y库a连?接失败,?请?检查服t务?器数y据Y库a连?接!?); 3) 升序降序核心代码:protected void gdvMsgs_Sorting(object sender, GridViewSortEventArgs e) /之前在PageLoad的时候已经设置了:ViewStateSortOrder = ID; ViewStateOrderDire = ASC; string sortExpresion = e.SortExpression;/排序依据 if (ViewStateSortOrder.ToString() = sortExpresion) if (ViewStat
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1