首页 >> 大全

【项目经验】DataTable与JSON之间的转换

2023-12-07 大全 25 作者:考证青年

【项目需求】

问卷调查的制作学生端已经完成了,下一步要做的便是后台对问卷结果的管理。通过和老师的沟通,了

解到老师想要的结果是按专业查询的结果,而其中包括两门课程。所以,接下来的工作便很明确了。

【项目设计】

对问卷结果的回收内容明确之后,第一项工作便是页面的设计。如下:

将经验转化为__如何将经验转化为成果

在导航栏新增对此次问卷调查的菜单,其下包括三个子菜单,也就是本次问卷包含的三种题型,分开查询。每个页面,通过课程与专业的选择,进行问卷结果的查询。

【项目开发】

本次项目开发的具体步骤不一一写下来了,思路是一致的。即前台页面通过已有的课程名和专业名去数 据库进行查询,查询的结果用的是盛放的,而前台能够接收到的数据类型应该是Json格式的, 最后在前台显示的还是Table。这么一说,好像很糊涂,那么就看看下面的一张图:

_将经验转化为_如何将经验转化为成果

【代码实现】

下面,跟着上面的一条线,看看部分关键代码。

(1)D层,写的是一个根据课程名称和专业名称查询对应的问卷结果:

        /// /// 根据专业课程查询单选结果——胡志婷——2016年1月8日09:32:03/// /// 课程信息/// 专业信息/// DataTablepublic DataTable QuerySingleAnswerBymajorName(string courseName,string majorName){//按对应的课程专业查询单选题下学生的选项及各个选项所选的人数string sql = "select singleAnswer,singleChoiceContext,singleOptionContext,count(singleAnswer) as count from V_SingleAnswerInfo where majorName=@majorName and courseName=@courseName and singleAnswer=singleOptionID Group by singleAnswer,singleChoiceContext,singleOptionContext order by singleChoiceContext";//参数,课程和专业信息SqlParameter[] para=new SqlParameter[]{new SqlParameter("@majorName",majorName.Trim()),new SqlParameter("@courseName",courseName.Trim())};//执行带参数查询的方法DataTable dt =sqlHelper .ExecuteQuery(sql,para,CommandType.Text);//返回查询结果return dt;}

(2)B层,将D层查询到的结果返回。

	/// /// 根据专业课程查询单选结果——胡志婷——2016年1月8日09:29:53/// /// 课程信息/// 专业信息/// DataTablepublic DataTable QuerySingleAnswerBymajorName(string courseName, string majorName){//声明表对象DataTable dt = new DataTable();//执行查询dt = new SingleDAL().QuerySingleAnswerBymajorName(courseName, majorName);//返回结果return dt;}

(3)一般处理程序,将转换为Json字符串。

        public void ProcessRequest(HttpContext context){context.Response.ContentType = "text/plain";//问卷单选答案实体SingleAnswerEntity singleanswerentity = new SingleAnswerEntity();//课程信息singleanswerentity.CourseName = context.Request.QueryString["courseName"].ToString();//专业信息singleanswerentity.MajorName=context.Request.QueryString["majorName"].ToString();//根据专业课程查询单选信息答案方法DataTable dtSingleAnswer = new StaticticalTeacherScoresBLL().QuerySingleAnswerBymajorName(singleanswerentity.CourseName, singleanswerentity.MajorName);//实例化DataTable与JSON间转换的业务逻辑类DatatableAndJsonBLL datatableAndJsonBLL = new DatatableAndJsonBLL();//调用DataTable转换为JSON方法string strJSON = datatableAndJsonBLL.DataTable2Json(dtSingleAnswer);context.Response.Write(strJSON);}

如何将经验转化为成果_将经验转化为_

(4)业务逻辑层下的方法。

      /// /// 将DataTable数据转换为Json字符串——胡志婷——2016年1月6日14:29:10/// /// DataTable/// JSON stringpublic string DataTableToJson(DataTable dt){//实例化一个可变的字符序列StringBuilder jsonBuilder = new StringBuilder(); //开始给字符序列附加字符     jsonBuilder.Append("[");for (int i = 0; i < dt.Rows.Count; i++){jsonBuilder.Append("{");for (int j = 0; j < dt.Columns.Count; j++){jsonBuilder.Append("\"");jsonBuilder.Append(dt.Columns[j].ColumnName);jsonBuilder.Append("\":\"");jsonBuilder.Append(dt.Rows[i][j].ToString());jsonBuilder.Append("\",");}jsonBuilder.Remove(jsonBuilder.Length - 1, 1);jsonBuilder.Append("},");}jsonBuilder.Remove(jsonBuilder.Length - 1, 1);jsonBuilder.Append("]");return jsonBuilder.ToString();}  

(5)AJAX将接收到的JSON字符串进行处理

        

(6)最后,我们在前台就可以看到查询到的结果了。

_将经验转化为_如何将经验转化为成果

【项目总结】

其实, 我们不仅仅可以将转换为JSON返回到前台,同样也可以将JSON转换 为存储到后台,在这里就不贴代码了。

一直以来,项目中的实现都是在已有的模板代码下进行实践的,所以对于代码的理解,对于思路的理解,自己并没有好好理会过。所处的状态好像是,虽然功能实现了,但具体的逻辑或者实现过程自己并没有做到心中有数吧。

通过这一次的维护实践,才让我接触到了与JSON之间的转换,这好像让自己恍然大悟,有时间可以把各种项目的代码都好好看看,对于代码的理解也是需要慢慢培养和积累的。

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了