《项目经验》--通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来的Json数据写入数据库表中

问题描述

此帖子内容是我做项目时用到,自己琢磨出来的,可能还有很多纰漏之处,在此分享!互相交流,互相学习,有不对的地方,欢迎大家指正!具体内容见博客《《项目经验》--通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来的Json数据写入数据库表中》:http://blog.csdn.net/mazhaojuan/article/details/8592015先看一下我要实现的功能界面:这个界面的功能在图中已有展现,课程分配(教师教授哪门课程)在之前的页面中已做好。这个页面主要实现的是授课,即给老师教授的课程分配学生。此页面实现功能的步骤已在页面中有所体现,这里不再赘述,此篇文章主要介绍:我是如何通过js从前台获取数据,然后通过ajax技术向后台一般处理程序传递JSON,后台又是如何获取传来的JSON,并对JSON数据转换,然后将转换后的数据写入数据库的!介绍这些步骤实现前,先说说自己的辛酸:絮叨辛酸,是因为为了实现这个功能,我真的用了很长时间!为了让用户看着舒服点,这个页面的实现我写了700多行的JS代码和9个一般处理程序!为了避免页面刷新影响效果,又不想使用VS自带的UpdatePanelAJAX控件,感觉这个控件会带来不少后患,所以这个页面的实现我使用了大量JS代码。从后台一般处理程序向前台传递JSON,前台解析JSON并显示在界面,这样的实现网上例子很多,非常容易实现,我也写了一篇博客来记录自己的成长,见《《项目经验》--后台一般处理程序向前台JS文件传递JSON,JS解析JSON,将数据显示在界面--显示在DropDownList或显示在动态创建的table中》;而从前台向后台传递JSON用法,却让我费尽周折,最终也没找到一个完整的实例,但最后将问题分成几个步骤,然后一步步解决了!下面分享下我的经验,希望对用到此功能的战友有所帮助,当然我这样实现有什么缺陷,还希望得到高人指点!1.界面层添加信息列表部分html代码[html]viewplaincopyprint?<!--添加各项列表--><tdclass="addlist"><divclass="block"><divclass="h"><spanclass="icon-spriteicon-list"></span><h3>添加信息列表</h3></div><divclass="tlcorner"></div><divclass="trcorner"></div><divclass="blcorner"></div><divclass="brcorner"></div><divclass="cnt-wp"><divclass="cnt"style="width:450px;height:400px;overflow:scroll;"><tableclass="data-form"id="tabAddList"border="0"cellspacing="0"width="450px"align="center"cellpadding="0"><tbody><tr><thscope="row">教师名:</th><td><asp:TextBoxCssClass="input-normal"ID="txtAddTeacherName"runat="server"Enabled="False"></asp:TextBox><%--隐藏控件,保存教师id--%><asp:HiddenFieldID="hidFieldSaveTeacherID"runat="server"/></td></tr><tr><thscope="row">课程名:</th><td><asp:TextBoxCssClass="input-normal"ID="txtAddCourseName"runat="server"Enabled="False"></asp:TextBox><%--隐藏控件,保存课程id--%><asp:HiddenFieldID="hidFieldSaveCourseID"runat="server"/><%--隐藏控件,保存教师、课程关系indexing--%><asp:HiddenFieldID="hidFieldSaveIndexing"runat="server"/></td></tr><tr><thscope="row">选择上课班:</th><td><asp:DropDownListID="ddlTeachClass"CssClass="input-normal"runat="server"></asp:DropDownList></td><td><%--<asp:ButtonID="btnAddTeachClass"runat="server"Text="添加一个上课班"OnClick="btnAddTeachClass_Click"/>--%><inputid="btnAddTeachClass"type="button"class="btn-lit"value="确认添加"onclick="AddTeachClass()"/></td></tr><tr><thscope="row">已选授课人数</th><td><asp:TextBoxCssClass="input-normal"ID="txtStuNum"runat="server"Enabled="False"></asp:TextBox></td></tr><tr><thscope="row">学生姓名列表</th><td><asp:ListBoxID="lsboxStudent"runat="server"Height="150px"Width="250px"></asp:ListBox></td></tr><tr><thscope="row"><br/></th><td><br/><%--<asp:ButtonID="btnAddTeachCourse"class="btn-lit"runat="server"Text="确认添加"onclick="btnAddTeachCourse_Click"/>--%><inputid="btnAddTeachCourse"type="button"class="btn-lit"value="确认添加"onclick="AddTeachCourse()"/></td></tr></tbody></table></div></div></div></td>选择完学年学期、教师、课程、学生后,点击"确认添加"按钮,执行"添加授课信息"事件!2.通过JS获取前台授课数据,并向后台一般处理程序传递[javascript]viewplaincopyprint?//*******************************************授课点击事件******************************************////添加授课信息functionAddTeachCourse(){//取得教师IDvarstrTeacherID=$("#hidFieldSaveTeacherID").val();//alert("教师ID="+txtTeacherID);//取得课程IDvarstrCourseID=$("#hidFieldSaveCourseID").val();//alert("课程ID="+txtCourseID);//取得上课班IDvarstrTeachClassID=document.getElementById("ddlTeachClass");varTeachClassID=strTeachClassID.options[strTeachClassID.selectedIndex].value;//得到ID//取得课程分配的ID(Indexing)varIndexing=$("#hidFieldSaveIndexing").val();//取得学生数量varstuNum=$("#txtStuNum").val();//取得listbox框IDvarlistStudent=document.getElementById("lsboxStudent");//取得listbox框中元素长度varlstStuLength=listStudent.options.length;//varobjJsons="";//varStuArrayObj=newArray();//创建一个数组,存储学生ID//StuArrayObj[i]=StudentID;//向数组中添加学生ID//*******************以下是:转换json对象的过程*************************//varStuArrayObjs=[];//定义一个空串for(vari=0;i<lstStuLength;i++){varStudentID=listStudent.options[i].value;//取得学生IDvarStuArrayObj={};//定义一个空对象,存入数据依次写入空串StuArrayObj["TeacherID"]=strTeacherID;//教师IDStuArrayObj["CourseID"]=strCourseID;//课程IDStuArrayObj["TeachClassID"]=TeachClassID;//上课班IDStuArrayObj["Indexing"]=Indexing;//课程分配IDStuArrayObj["StuNum"]=stuNum;//学生数量StuArrayObj["StudentID"]=StudentID;//学生IDStuArrayObjs.push(StuArrayObj);}varTeachCourseJsonString=JSON.stringify(StuArrayObjs);//JSON.stringify()转换为json串//varTeachCourseJson=eval("("+TeachCourseJsonString+")");//转换为json对象//alert(TeachCourseJson[1].TeacherID);//下面$.getJSON可以传递成功,只是这样传递不能传递过长字符串////$.getJSON("../handler/AddTeachCourse.ashx",{TeachCourseJson:TeachCourseJsonString},function(data){////alert(data);////});//与AJAX交互,向一般处理程序传递json字符串数组,并返回结果$.post("../handler/AddTeachCourse.ashx",{TeachCourseJson:TeachCourseJsonString},function(data){alert(data);});}以上有几个需要注意的地方:2.1.转换JSON串使用[javascript]viewplaincopyprint?JSON.stringify()2.2.JS向一般处理程序传递JSON使用[javascript]viewplaincopyprint?//与AJAX交互,向一般处理程序传递json字符串数组,并返回结果$.post("要使用的一般处理程序路径",{TeachCourseJson:TeachCourseJsonString},function(data){alert(data);});

解决方案

解决方案二:
3.一般处理程序解析JS传递过来的Json数据,并进行解析,写入DataTable中,然后写入数据库[csharp]viewplaincopyprint?<%@WebHandlerLanguage="C#"Class="AddTeachCourse"%>/********************************************************************************文件:AddTeachCourse.ashx*作者:mzj*所属小组:评教小组*文件说明:添加授课信息*创建日期:2013年2月6日17:57:01*修改作者:*修改日期:*修改描述:*版本号:V1.0*版本号变更记录:********************************************************************************/usingSystem;usingSystem.Web;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Data;//json使用命名空间usingNewtonsoft.Json;usingNewtonsoft.Json.Linq;usingNewtonsoft.Json.Converters;usingSystem.IO;usingSystem.Text;usingTeachSystem.BLL.TeachingBLL;usingTeachSystem.Entity.TeachingEntity;publicclassAddTeachCourse:IHttpHandler{publicvoidProcessRequest(HttpContextcontext){context.Response.ContentType="text/plain";//创建一个名为ds_StuTeacherCourse的DataSet//(用于存放表:学生、教师、课程关系表,学生、上课班关系表,课程分配上课班关系表)DataSetdsStuTeacherCourse=newDataSet("ds_StuTeacherCourse");//手动创建的新数据表-学生、教师、课程关系数据表DataTabledtAddStudentTeaherCourse=newDataTable("dt_AddStudentTeaherCourse");//创建一个名为dt_AddStudentTeaherCourse的DataTalbe//为dt_AddStudentTeaherCourse表内建立Column(表头),添加数据列:StudentID,Indexing,IsAvailabledtAddStudentTeaherCourse.Columns.Add(newDataColumn("StudentID",typeof(string)));dtAddStudentTeaherCourse.Columns.Add(newDataColumn("Indexing",typeof(int)));dtAddStudentTeaherCourse.Columns.Add(newDataColumn("IsAvailable",typeof(string)));//手动创建的新数据表-学生、上课班关系数据表DataTabledtAddStudentTeachClass=newDataTable("dt_AddStudentTeachClass");//创建一个名为dt_AddStudentTeachClass的DataTalbe//为dt_AddStudentTeachClass表内建立Column(表头),添加数据列:StudentID,TeachClassID,IsAvailabledtAddStudentTeachClass.Columns.Add(newDataColumn("StudentID",typeof(string)));dtAddStudentTeachClass.Columns.Add(newDataColumn("TeachClassID",typeof(string)));dtAddStudentTeachClass.Columns.Add(newDataColumn("IsAvailable",typeof(string)));//手动创建的新数据表-课程分配、上课班关系数据表DataTabledtAddCourseTeachClass=newDataTable("dt_AddCourseTeachClass");//创建一个名为dt_AddStudentTeachClass的DataTalbe//为dt_AddCourseTeachClass表内建立Column(表头),添加数据列:TeachClassID,Indexing,IsAvailabledtAddCourseTeachClass.Columns.Add(newDataColumn("TeachClassID",typeof(string)));dtAddCourseTeachClass.Columns.Add(newDataColumn("Indexing",typeof(int)));dtAddCourseTeachClass.Columns.Add(newDataColumn("IsAvailable",typeof(string)));dtAddCourseTeachClass.Columns.Add(newDataColumn("OddEven",typeof(string)));dtAddCourseTeachClass.Columns.Add(newDataColumn("StuNum",typeof(int)));//获取前台传递过来的授课JSON字符串数组stringss=context.Request.Form["TeachCourseJson"];//反序列化获取的JSON字符串数组JArrayjavascript=(JArray)JsonConvert.DeserializeObject(ss);//依次遍历反序列化的json字符串数组for(inti=0;i<javascript.Count;i++){//将一个个反序列化的JSON字符串数组转换成对象,并将转换后的对象的值依次赋给各变量JObjectobj=(JObject)javascript[i];stringstrTeacherID=obj["TeacherID"].ToString();//教师IDstringstrCourseID=obj["CourseID"].ToString();//课程IDstringstrTeachClassID=obj["TeachClassID"].ToString();//上课班IDintintIndexing=Convert.ToInt32(obj["Indexing"].ToString());//课程分配IDintintStuNum=Convert.ToInt32(obj["StuNum"].ToString());//授课学生人数stringstrStudentID=obj["StudentID"].ToString();//学生ID//添加学生、教师、课程关系信息表的新行DataRowdrAddStudentTeaherCourse=dtAddStudentTeaherCourse.NewRow();//注意这边创建dt的新行的方法。指定类型是DataRow而不是TableRow,然后不用new直接的用创建的DataTable下面的NewRow方法。//学生、教师、课程关系信息表对应的各列值drAddStudentTeaherCourse["StudentID"]=strStudentID;//学生IDdrAddStudentTeaherCourse["Indexing"]=intIndexing;//课程分配IDdrAddStudentTeaherCourse["IsAvailable"]="是";dtAddStudentTeaherCourse.Rows.Add(drAddStudentTeaherCourse);//将一整条数据写入表中//添加学生、上课班关系信息表的新行DataRowdrAddStudentTeachClass=dtAddStudentTeachClass.NewRow();//注意这边创建dt的新行的方法。指定类型是DataRow而不是TableRow,然后不用new直接的用创建的DataTable下面的NewRow方法。//学生、上课班关系信息表对应的各列值drAddStudentTeachClass["StudentID"]=strStudentID;//学生IDdrAddStudentTeachClass["TeachClassID"]=strTeachClassID;//上课班IDdrAddStudentTeachClass["IsAvailable"]="是";dtAddStudentTeachClass.Rows.Add(drAddStudentTeachClass);//将一整条数据写入表中}JObjectobjs=(JObject)javascript[0];stringstrTeachClassIDs=objs["TeachClassID"].ToString();intintIndexings=Convert.ToInt32(objs["Indexing"].ToString());intintStuNums=Convert.ToInt32(objs["StuNum"].ToString());//添加课程分配、上课班关系信息表的新行DataRowdrAddCourseTeachClass=dtAddCourseTeachClass.NewRow();//注意这边创建dt的新行的方法。指定类型是DataRow而不是TableRow,然后不用new直接的用创建的DataTable下面的NewRow方法。//课程分配、上课班关系信息表对应的各列值drAddCourseTeachClass["TeachClassID"]=strTeachClassIDs;drAddCourseTeachClass["Indexing"]=intIndexings;drAddCourseTeachClass["IsAvailable"]="是";drAddCourseTeachClass["OddEven"]=null;drAddCourseTeachClass["StuNum"]=intStuNums;dtAddCourseTeachClass.Rows.Add(drAddCourseTeachClass);//将一整条数据写入表中//将各表加入DataSet中:dsStuTeacherCourse.Tables.Add(dtAddStudentTeaherCourse);dsStuTeacherCourse.Tables.Add(dtAddStudentTeachClass);dsStuTeacherCourse.Tables.Add(dtAddCourseTeachClass);//将DataSet中数据表导入数据库BooleanflagImportStuTeacherCourse=newTeachCourseBLL().ImportStudentTeacherCourse(dsStuTeacherCourse);//JsonReaderreader=newJsonReader(newStringReader(jsonText))//strings=context.Request.Form["TeachCourseJson"];context.Response.Write(flagImportStuTeacherCourse);context.Response.End();}publicboolIsReusable{get{returnfalse;}}}一般处理程序代码,需要注意几点:3.1获取前台传递过来的JSON字符串数组[csharp]viewplaincopyprint?//获取前台传递过来的授课JSON字符串数组stringss=context.Request.Form["TeachCourseJson"];3.2反序列化前台传来的JSON字符才能换数组[csharp]viewplaincopyprint?//反序列化获取的JSON字符串数组JArrayjavascript=(JArray)JsonConvert.DeserializeObject(ss);3.3自定义Dataset,并建立各数据表,将前台传来的数据写入DataTable表创建Dataset及数据表[csharp]viewplaincopyprint?//创建一个名为ds_StuTeacherCourse的DataSet//(用于存放表:学生、教师、课程关系表,学生、上课班关系表,课程分配上课班关系表)DataSetdsStuTeacherCourse=newDataSet("ds_StuTeacherCourse");//手动创建的新数据表-学生、教师、课程关系数据表DataTabledtAddStudentTeaherCourse=newDataTable("dt_AddStudentTeaherCourse");//创建一个名为dt_AddStudentTeaherCourse的DataTalbe//为dt_AddStudentTeaherCourse表内建立Column(表头),添加数据列:StudentID,Indexing,IsAvailabledtAddStudentTeaherCourse.Columns.Add(newDataColumn("StudentID",typeof(string)));dtAddStudentTeaherCourse.Columns.Add(newDataColumn("Indexing",typeof(int)));dtAddStudentTeaherCourse.Columns.Add(newDataColumn("IsAvailable",typeof(string)));//手动创建的新数据表-学生、上课班关系数据表DataTabledtAddStudentTeachClass=newDataTable("dt_AddStudentTeachClass");//创建一个名为dt_AddStudentTeachClass的DataTalbe//为dt_AddStudentTeachClass表内建立Column(表头),添加数据列:StudentID,TeachClassID,IsAvailabledtAddStudentTeachClass.Columns.Add(newDataColumn("StudentID",typeof(string)));dtAddStudentTeachClass.Columns.Add(newDataColumn("TeachClassID",typeof(string)));dtAddStudentTeachClass.Columns.Add(newDataColumn("IsAvailable",typeof(string)));//手动创建的新数据表-课程分配、上课班关系数据表DataTabledtAddCourseTeachClass=newDataTable("dt_AddCourseTeachClass");//创建一个名为dt_AddStudentTeachClass的DataTalbe//为dt_AddCourseTeachClass表内建立Column(表头),添加数据列:TeachClassID,Indexing,IsAvailabledtAddCourseTeachClass.Columns.Add(newDataColumn("TeachClassID",typeof(string)));dtAddCourseTeachClass.Columns.Add(newDataColumn("Indexing",typeof(int)));dtAddCourseTeachClass.Columns.Add(newDataColumn("IsAvailable",typeof(string)));dtAddCourseTeachClass.Columns.Add(newDataColumn("OddEven",typeof(string)));dtAddCourseTeachClass.Columns.Add(newDataColumn("StuNum",typeof(int)));向数据表填充数据,例如[csharp]viewplaincopyprint?//添加课程分配、上课班关系信息表的新行DataRowdrAddCourseTeachClass=dtAddCourseTeachClass.NewRow();//注意这边创建dt的新行的方法。指定类型是DataRow而不是TableRow,然后不用new直接的用创建的DataTable下面的NewRow方法。//课程分配、上课班关系信息表对应的各列值drAddCourseTeachClass["TeachClassID"]=strTeachClassIDs;drAddCourseTeachClass["Indexing"]=intIndexings;drAddCourseTeachClass["IsAvailable"]="是";drAddCourseTeachClass["OddEven"]=null;drAddCourseTeachClass["StuNum"]=intStuNums;dtAddCourseTeachClass.Rows.Add(drAddCourseTeachClass);//将一整条数据写入表中将各数据表存入DataSet[csharp]viewplaincopyprint?//将各表加入DataSet中:dsStuTeacherCourse.Tables.Add(dtAddStudentTeaherCourse);dsStuTeacherCourse.Tables.Add(dtAddStudentTeachClass);dsStuTeacherCourse.Tables.Add(dtAddCourseTeachClass);
解决方案三:
3.4将DataSet中各数据表写入数据库[csharp]viewplaincopyprint?//将DataSet中数据表导入数据库BooleanflagImportStuTeacherCourse=newTeachCourseBLL().ImportStudentTeacherCourse(dsStuTeacherCourse);这篇文章仅仅介绍了添加授课功能的实现
解决方案四:
这个你自己知道就好了,别发出来,发出来就误导人了。博客园和51aspx,可以说现在比csdn都水,水的原因就是,很多人把太多太多没什么特别有参考价值的到处推广,搞得原本很基础的玩意被那些不明所以然的学生当非常高深,非常高级的内容去学了
解决方案五:
引用3楼wanghui0380的回复:

这个你自己知道就好了,别发出来,发出来就误导人了。博客园和51aspx,可以说现在比csdn都水,水的原因就是,很多人把太多太多没什么特别有参考价值的到处推广,搞得原本很基础的玩意被那些不明所以然的学生当非常高深,非常高级的内容去学了

不发出来,怎么知道自己做的对与不对?知识只有共享了才会变成双份!我写的这博客哪里水了?????这博客哪里写错了,你可以指点一二啊,如果你指出我的错误之处,我很乐意改正;如果我没有错,那么你这不是阻挡我知识共享么?????不把自己的观点说出来,谁会知道你多大水平?????
解决方案六:
不是对或不对,也不是错和不错而是这种代码,木有什么参考价值。你喜欢什么样书,21天??截几张vs安装图,下一步,下一步,完成.然后usingxxx,usingyyy,inti=1+2,writeline???请告诉你写的这些玩意,对谁有参考价值
解决方案七:
不反对分享,但分享要有意义,由于网络爬虫和采集器和搜索引擎的影响,一遍文章至少会在网络上流传3年,假设你的文章在3年以后还能对人有意义,那就是好文章。但是就你自己这文章,就你自己的3个月后来看,也会觉着木啥意义,这种对于玩意还要持续影响后面3年的人,这就不好了俺们搞技术的一般不用百度搜索,为啥子呢?因为你用百度搜,能搜到最大可能就是博客园上那些作者写玩后3个月,连作者自己也觉着木啥意思,却在网络上流传了n年,还在百度首页摆着。还是少点这样的分享,让真正有意义的文章能上百度把,免得俺们每次找点东西还得爬墙出去google
解决方案八:
引用5楼wanghui0380的回复:

不是对或不对,也不是错和不错而是这种代码,木有什么参考价值。你喜欢什么样书,21天??截几张vs安装图,下一步,下一步,完成.然后usingxxx,usingyyy,inti=1+2,writeline???请告诉你写的这些玩意,对谁有参考价值

对于有这方面需求的人来说,看了这博客自己有参考价值;对于暂时用不到此技术的人来说,可以做到“不怕不知道,就怕不知道”,做出什么效果也不是看一篇博客就能完成的,不用参考这文章做出什么自己需要的效果,就是通过读别人的东西让自己产生灵感!我写的代码还没有你说的这么不专业吧!再说哪一个高手不是从基础做起的,谁可以一口吃成胖子??学习一样,先站在别人的肩膀上,然后才能自己创新……谁没听过json是什么,上来就会借助json传数据??????从小没学过循序渐进是什么意思么?
解决方案九:
打个比方把,这个csdnnet版有个大大叫sp1234,在4年以前发过重量级地查询控件http://bbs.csdn.net/topics/310047728这篇东西即使已经过了4年了,现在看仍然不过时,仍然有参考意义,这就是好的分享
解决方案十:
引用8楼wanghui0380的回复:

打个比方把,这个csdnnet版有个大大叫sp1234,在4年以前发过重量级地查询控件http://bbs.csdn.net/topics/310047728这篇东西即使已经过了4年了,现在看仍然不过时,仍然有参考意义,这就是好的分享

仁者见仁智者见智,你有你的观点,我有我的主见!好分享与坏分享不是一个人可以决定的,乐意分享就分享,分享后得到更大的提高;而通过自己的努力实现的功能呢,拿出来分享,可能你认为它没有价值,因为你没用到它,但不代表别人认为它没有价值……每个人都有自由权,别人无法剥夺……成长是一个过程,不要希冀一天就达到100岁,那样的人生毫无意义……
解决方案十一:
然后呢。。。
解决方案十二:
还是支持一下,我最近也在处理js传递一个json字符串到handler,然后c#解析
解决方案十三:
引用11楼Joyhen的回复:

还是支持一下,我最近也在处理js传递一个json字符串到handler,然后c#解析

Thanks,用过之后,发现它还是很简单的……
解决方案十四:
引用10楼Mockqi的回复:

然后呢。。。

什么然后??
解决方案十五:
太繁琐太低级。如果我想学c#,我看到这种教程,我就会放弃c#。要尽可能少写代码,最好不写代码,那才是编程之道。
解决方案:
引用14楼sp1234的回复:

太繁琐太低级。如果我想学c#,我看到这种教程,我就会放弃c#。要尽可能少写代码,最好不写代码,那才是编程之道。

我这不是教程啊……我当然没您这位大师的水平,当然我在向您发展……一步步来,别着急嘛……
解决方案:
引用15楼mazhaojuan的回复:

引用14楼sp1234的回复:太繁琐太低级。如果我想学c#,我看到这种教程,我就会放弃c#。要尽可能少写代码,最好不写代码,那才是编程之道。我这不是教程啊……我当然没您这位大师的水平,当然我在向您发展……一步步来,别着急嘛……

计算机语言与其它语言是类似的。你学外语的时候,是按音标练口语还是跟着大师级的人物来练口语?请思考3分钟……………………………………并不是要你无节制地服从权威,但在你的初级阶段,还是先熟悉权威、高手的精髓和通常做法了,再自己去创新吧。
解决方案:
引用16楼yenange的回复:

引用15楼mazhaojuan的回复:引用14楼sp1234的回复:太繁琐太低级。如果我想学c#,我看到这种教程,我就会放弃c#。要尽可能少写代码,最好不写代码,那才是编程之道。我这不是教程啊……我当然没您这位大师的水平,当然我在向您发展……一步步来,别着急嘛……计算机语言与其它语言是类似的。你学外语的时候,是按音标练口语还……

我学习英语的方法服从学母语的方法,我非常同意“站在巨人肩膀上”,然后在自己创新自己创新出来了,就藏起来么???谁规定了,什么内容不能共享?我没让你们同意我的观点,也没让你们按照我的方法做,这是我自己方式……
解决方案:
引用17楼mazhaojuan的回复:

引用16楼yenange的回复:引用15楼mazhaojuan的回复:引用14楼sp1234的回复:太繁琐太低级。如果我想学c#,我看到这种教程,我就会放弃c#。要尽可能少写代码,最好不写代码,那才是编程之道。我这不是教程啊……我当然没您这位大师的水平,当然我在向您发展……一步步来,别着急嘛……计算机语言与其它语言是类似的。……

解决方案:
楼主是个妹子.大家别打击她!
解决方案:
我觉得不错啊,如果我在编程方面实现了一个我自己认为还可以的功能,我也会很兴奋,他这种态度是好的,虽然是很小的东西但知道分享,技术就是从交流和分享得来的嘛。只不过可能LZ暂时还没有达到各位大大的那种认知的层次。我觉得这种态度很好,应该鼓励。
解决方案:
支持,个人觉得大神们对这样的文章可以带着修改的引导指正的态度去看,不要一味的批判。
解决方案:
LZ你代码贴太多了,反而思路讲少了,这样的我们很不愿意看的
解决方案:
引用19楼liqiang665的回复:

楼主是个妹子.大家别打击她!

经得起打击,没有别人的打击,怎么能变得更强呢……
解决方案:
引用22楼yyl8781697的回复:

LZ你代码贴太多了,反而思路讲少了,这样的我们很不愿意看的

还是看我博客吧……
解决方案:
引用21楼aley的回复:

支持,个人觉得大神们对这样的文章可以带着修改的引导指正的态度去看,不要一味的批判。

我觉得也应该这样的,哈哈……我知道这个帖子我发的不好,本来博客中的图片都舍了,还把代码稀里糊涂都贴了上来……
解决方案:
自己感觉刚开始可以做很多的尝试,不怕错,但要及时改。
解决方案:
引用20楼xiangaylian的回复:

我觉得不错啊,如果我在编程方面实现了一个我自己认为还可以的功能,我也会很兴奋,他这种态度是好的,虽然是很小的东西但知道分享,技术就是从交流和分享得来的嘛。只不过可能LZ暂时还没有达到各位大大的那种认知的层次。我觉得这种态度很好,应该鼓励。

嗯哪,我会继续努力啊,争取早日跟上大神的层次,哈哈……
解决方案:
引用26楼ly_sl的回复:

自己感觉刚开始可以做很多的尝试,不怕错,但要及时改。

接受指正……
解决方案:

解决方案:
哇感觉好复杂的说
解决方案:

解决方案:
该回复于2014-12-23 23:54:43被版主删除
解决方案:

解决方案:
1,提交表达数据$.post('XXX',function(msg){返回})2,在ashx或者.aspx页面接收数据,解析3,存储到数据库完了。。。。
解决方案:
鱼和渔是不一样的,况且你的这条鱼还是只能看不能直接吃
解决方案:

解决方案:
有些人自以为很流弊,你会什么,你有什么资格指责别人,你凭什么说别人这不好那不好,别人分享一下他的经验怎么呢,哎你眼了,CSDN迟早被你们这样的人搞垮,艹。。。世界有了你们这群人就是可悲。艹,上面有个楼主劳资永远都记着,艹,劳资提问好几次,他也是像这样指责,自以为很流弊。
解决方案:
虽然自己现在还在处于基础学习阶段,但感觉那还是不错的
解决方案:
前后台的异步交互,确实没什么...
解决方案:
虽然看不明白你想说什么,不过还是对你说,你辛苦了
解决方案:
呵呵,不知道俺们在吐槽啥子把如果不知道那就问问你自己吐槽过那些《21天精通xxx》滴书木有在问问自己吐槽过在百度上从来搜不到正儿八经的技术资料木有在问问自己吐槽过从博客园抄来滴代码,被领导批为毫无意义的做法木有--如果你自己都吐槽过就明白俺们在吐槽啥子了,还是那句话从不反对分享,分享要有意义,否则就和你们口中那些你自己吐槽过N遍的“今年过年不收礼啊不收礼”“羊羊羊,猪猪猪,牛牛牛”那种XX广告轰炸一样,你自己是爽了,看广告滴都的吐血
解决方案:

解决方案:

解决方案:
楼上说的都很有意思啊,总之这种贴不发为好啊
解决方案:
山东饭馆

解决方案:
该回复于2014-09-09 00:08:37被版主删除
解决方案:
不批评不讨论怎么进步,那只会原地踏步
解决方案:
为分享产生如此分歧的还不多见,呵呵。
解决方案:
一方面,楼主说的分享也分不同层次,是有道理的。另一方面,楼主也应该从不同意见中汲取经验。他们说得相对还不太具体,如果你沉下心多看看编程思想方面的资料,应该象他们说的,回顾时会发现很多不足,这不是坏事,证明你提高了。所以在这里如果有人指出你技术上的不足,其实都是好事。相反,从阿谀奉承的人身上,你永远得不到对自己真正有益的提升。
解决方案:
看样子楼主花了不少心思弄出来的,这种精神很不错,大大们也别打击她,都是一步步过来的...

时间: 2024-10-30 02:47:45

《项目经验》--通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来的Json数据写入数据库表中的相关文章

我在C#后台中获取了数据库表中我需要的字段的值(是以string的类型取出来的),然后我已经将这些值进行了操作,得到了新的数据(string类型)将得到的新数据

问题描述 我在C#后台中获取了数据库表中我需要的字段的值(是以string的类型取出来的),然后我已经将这些值进行了操作,得到了新的数据(string类型)将得到的新数据插入到数据库中怎么做(要用存储过程做),求大神指教,最好能给我点代码参考. 解决方案 解决方案二:...数据库基础insert和update解决方案三:不就是普通的插入更新操作吗,msdn上都有示例代码解决方案四:参考实例:intid=0;//使用存储过程实现添加数据//proc_AddUser为存储过程名称using(SqlC

labview 数据库-从labview数据库表中提取数据

问题描述 从labview数据库表中提取数据 请问在labview中用数据库工具包,怎么从数据库表中提取一行的数据(非一列),用 执行语句 的vi,怎么获取到这行数据 解决方案 ultrachart的使用(一):从数据库中提取数据 解决方案二: http://zhidao.baidu.com/link?url=I6QemQpvC_C1sHAid9RjZXv3Z-VF62IeHIaY1kJEpMCmcalBNVfw1_Hv5fFnmKrvKyphR4rOihW1oqw1fXXUzVZrBsrp2k

用jdbc删除数据库表中数据失败

问题描述 用jdbc删除数据库表中数据失败 麻烦下谁能帮我看下哪出了问题 我怀疑是画红圈的那有问题 deleteShopping.jsp下面这张 数据库表 最后.. 我感觉是 解决方案 打个断点看下为什么失败,是不是book_id没取到 解决方案二: 你打印一下book_id的值,是不是目标数据.另外不要通过返回值判断是否成功.通常情况下,执行了,就认为删除了. 解决方案三: 通过JDBC获取数据库表元数据 解决方案四: 你这个是get方式传参 你把鼠标放到删除链接上面,页面的左下角会有url的

将数据库项目表中的项目随机并均匀分配给数据库表中的管理员,求大神指导一下!!!!!!

问题描述 将数据库项目表中的项目随机并均匀分配给数据库表中的管理员,求大神指导一下!!!!!! 将数据库项目表中的项目随机并均匀分配给数据库表中的管理员,项目数目和管理员数目个数是不定的,只能从数据库中读取,下面不知道怎么写了???? using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebCon

c++获取sqlite3数据库表中所有字段的方法小结_C 语言

常用方法: 1.使用sqlite3_get_table函数 2.获取sqlite创建表的sql语句字符串,然后进行解析获取到相应的字段 3.采用配置文件的方式,将所有字段名写入配置文件 下面针对这三个方法给大家逐一详细介绍. 方法1:使用sqlite3_get_table函数 代码: char *dbname = "test.db"; int rc = sqlite3_open(dbname, &db); if (rc == SQLITE_OK) { char sql[256]

如何从 MySQL 数据库表中检索数据

1.从数据库表中检索信息 实际上,前面我们已经用到了SELECT语句,它用来从数据库表中检索信息. select语句格式一般为: SELECT 检索关键词 FROM 被检索的表 WHERE 检索条件(可选) 以前所使用的" * "表示选择所有的列. 下面继续使用我们在上篇文章中创建的表mytable. 2.查询所有数据: mysql> select * from mytable; +----------+------+------------+----------+ | name

从MySQL数据库表中检索数据

在<用MySQL创建数据库和数据库表>文章中,我们如何创建一个数据库和数据库表,并知道如何向数 据库表中添加记录. 那么我们如何从数据库表中检索数据呢? 1.从数据库表中检索信息 实际上,前面我们已经用到了SELECT语句,它用来从数据库表中检索信息. select语句格式一般为: SELECT 检索关键词 FROM 被检索的表 WHERE 检索条件(可选) 以前所使用的" * "表示选择所有的列.下面继续使用我们在上篇文章中创建的表 mytable. 2.查询所有数据:

从从MySQL数据库表中检索数据

  在<用MySQL创建数据库和数据库表>文章中,我们如何创建一个数据库和数据库表,并知道如何向数 据库表中添加记录. 那么我们如何从数据库表中检索数据呢? 1.从数据库表中检索信息 实际上,前面我们已经用到了SELECT语句,它用来从数据库表中检索信息. select语句格式一般为: SELECT 检索关键词 FROM 被检索的表 WHERE 检索条件(可选) 以前所使用的" * "表示选择所有的列.下面继续使用我们在上篇文章中创建的表 mytable. 2.查询所有数据

复制数据库表中两个字段数据的SQL语句

复制数据库表中两个字段数据的SQL语句 今天为表新添加一个字段,但又想与表中的另一个字段值相同,由于数据过多想通过sql语句实现,经测试下面的这句话确实很好用.   复制代码 代码如下: update jb51_temp set B=A jb51_temp 代表表明 A是有数值的字段,B是新添加的字段 ,记住空值表放到前面,如果set a=b,那么你的数值都为空了,就麻烦了,建议操作前备份数据库. 如何将一个字段里的值复制添加到另一个字段中 比如,有二个字段A和B,A字段是值是"我",