当前位置:编程学习 > C#/ASP.NET >>

我想请人帮我解释一下.net的代码,自己真的看不懂啊

是一个关于快餐店的系统。不用逐句解释。只是对系统功能的编码实现原理的解释。[/size]
例如:
[color=#FF99CC][size=16px](1)dz09011834search.aspx页面
进入dz09011834search.aspx页面,系统首先会显示查找到商品的目录,这主要是通过存放在Session["search"]中的关键字实现的,以及添加ListView控件绑定数据库实现的。[/color]

因为周六前就要交作业了,所以比较急~除了分儿,我也可以付工资啊!!!!!!我先贴一小段代码,如果愿意帮我全部解释完的,可以加我扣扣695254373~系统就是个学生作业,真的不大。但是最好就在帖子里解答了哈!

//文件名:BookingCheckForm.aspx.cs
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

using System.Data.SqlClient;
using System.Globalization;
using System.Collections.Specialized;
using System.Text.RegularExpressions;

public partial class BookingManage_BookingCheckForm : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        string MyForbidString = Session["MyForbid"].ToString();
        if (MyForbidString.IndexOf("C3") > 1)
        {
            Server.Transfer("~/SystemManage/AllErrorHelp.aspx");
        }
        this.Button1.OnClientClick = "return confirm('请检查客人结账信息是否正确,一旦结账就无法修改,是否继续?')";  
    }
    protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
    {//获取客人用餐信息
        string MyID = this.DropDownList1.SelectedValue.ToString();
        string MySQL = "Select 预交订金 FROM 预订信息 WHERE 预订编号='" + MyID + "'";
        String MySQLConnectionString = ConfigurationManager.ConnectionStrings["MyEateryDBConnectionString"].ConnectionString;
        SqlConnection MyConnection = new SqlConnection(MySQLConnectionString);
        DataTable MyTable = new DataTable();
        SqlDataAdapter MyAdatper = new SqlDataAdapter(MySQL, MyConnection);
        MyAdatper.Fill(MyTable);
        this.TextBox3.Text = MyTable.Rows[0][0].ToString();
        MyConnection.Close();
        MySQL = "Select SUM(计费金额) FROM 用餐明细 WHERE 用餐单号 LIKE '%" +MyID + "%'";
        MyConnection.Open();
        SqlCommand MyCommand = MyConnection.CreateCommand();
        MyCommand.CommandText = MySQL;
        this.TextBox2.Text = MyCommand.ExecuteScalar().ToString();
        double My实收金额 = Convert.ToDouble(this.TextBox2.Text) - Convert.ToDouble(this.TextBox3.Text) - Convert.ToDouble(this.TextBox4.Text);
        this.TextBox5.Text = My实收金额.ToString();    
        if (MyConnection.State == ConnectionState.Open)
            MyConnection.Close();
    }
    protected void Button1_Click(object sender, EventArgs e)
    {//登记预订用餐结账信息   
        if (!(Convert.ToDouble(this.TextBox2.Text) - Convert.ToDouble(this.TextBox3.Text) - Convert.ToDouble(this.TextBox4.Text) - Convert.ToDouble(this.TextBox5.Text) == 0))
            return;
        string MyID = this.DropDownList1.SelectedValue.ToString();
        string MySQL = "Select 用餐单号 FROM 用餐信息 WHERE 用餐单号 LIKE '%" + MyID + "%'";
        String MySQLConnectionString = ConfigurationManager.ConnectionStrings["MyEateryDBConnectionString"].ConnectionString;
        SqlConnection MyConnection = new SqlConnection(MySQLConnectionString);
        DataTable MyTable = new DataTable();
        SqlDataAdapter MyAdatper = new SqlDataAdapter(MySQL, MyConnection);
        MyAdatper.Fill(MyTable);
        MyConnection.Close();
        foreach (DataRow MyRow in MyTable.Rows)
        {
            string My用餐单号= MyRow[0].ToString();
            MySQL = "Select SUM(计费金额) FROM 用餐明细 WHERE 用餐单号='" + My用餐单号 + "'";
            MyConnection.Open();
            SqlCommand MyCommand = MyConnection.CreateCommand();
            MyCommand.CommandText = MySQL;
            double  My计费金额 = Convert.ToDouble(MyCommand.ExecuteScalar().ToString());
            double  My总用餐金额 =Convert.ToDouble(this.TextBox2.Text);
            double  My总实收金额 =Convert.ToDouble(this.TextBox5.Text);
            Double My总预收金额 = Convert.ToDouble(this.TextBox3.Text);
            double My实收金额 = My计费金额 / My总用餐金额 * (My总实收金额 + My总预收金额);
            NumberFormatInfo MyNumberFormatInfo = new CultureInfo("zh-CN", false).NumberFormat;
            My实收金额 =Convert.ToDouble(String.Format(My实收金额.ToString("N", MyNumberFormatInfo)));    
            double My折扣金额 = My计费金额 - My实收金额;
            DataTable MyNewTable = new DataTable();
            MySQL = "SELECT 入座台位 FROM 用餐信息 WHERE 用餐单号='" + My用餐单号 + "'";
            MyAdatper = new SqlDataAdapter(MySQL, MyConnection);
            MyAdatper.Fill(MyNewTable);
            MyConnection.Close();
            String My台位编号 = MyNewTable.Rows[0][0].ToString();
            MySQL = "Update 用餐信息 Set 用餐金额=" + My计费金额 + ",折扣金额=" + My折扣金额 + ",实收金额=" + My实收金额 + ",补充说明='" + this.TextBox6.Text + "',宾客意见='" + this.TextBox7.Text + "',当前状态='已经结账' WHERE 用餐单号='" + My用餐单号 + "';";
            MySQL += "Update 台位信息 SET 当前状态='空置' WHERE 台位编号='" + My台位编号 + "';";
            MySQL += "Update 预订信息 SET 当前状态='已经处理' WHERE 预订编号='" + MyID + "';";          
            MyConnection.Open();
            MyCommand = MyConnection.CreateCommand();
            MyCommand.CommandText = MySQL;
            MyCommand.ExecuteNonQuery();
            MyConnection.Close();
        }
        if (MyConnection.State == ConnectionState.Open)
            MyConnection.Close();
        this.SqlDataSource2.DataBind();
        this.SqlDataSource1.DataBind();
        this.GridView1.DataBind();
        this.DropDownList1.DataBind();        
    }
    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {//在GridView控件单元格中设置短日期显示格式
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            DateTime MyDate = DateTime.Parse(e.Row.Cells[2].Text);
            e.Row.Cells[2].Text = MyDate.ToShortDateString();
            MyDate = DateTime.Parse(e.Row.Cells[3].Text);
            e.Row.Cells[3].Text = MyDate.ToShortDateString();
        }
    }
    protected void Button2_Click(object sender, EventArgs e)
    {//打印客人用餐结账信息
        Response.Redirect("~/BookingManage/BookingCheckPrint.aspx?MyID=" + this.GridView1.SelectedRow.Cells[1].Text.ToString());
    }
}
--------------------编程问答-------------------- 你贴的这段代码无非就是 查询数据然后更新数据。没有什么
自己设个断点走走

楼主是个MM哈哈 --------------------编程问答-------------------- 真的没法解释。这东西根本就没有原理,无非就是胶水代码,把那些ado.net的对象按照约定的方式调用下。至于实现的业务逻辑,和把大象装入冰箱一样简单。 --------------------编程问答--------------------
引用 1 楼 kongwei521 的回复:
你贴的这段代码无非就是 查询数据然后更新数据。没有什么
自己设个断点走走

楼主是个MM哈哈

可是作业就是要解释啊!!!或者……这段没啥好解释的?我都看不懂…怎么断???到哪儿断??我是文盲啊!!! --------------------编程问答--------------------
引用 2 楼 caozhy 的回复:
真的没法解释。这东西根本就没有原理,无非就是胶水代码,把那些ado.net的对象按照约定的方式调用下。至于实现的业务逻辑,和把大象装入冰箱一样简单。

可是每个步骤都有实现原理的呀,比如选择菜品,需要下拉菜单,那这个下拉菜单是通过啥实现的内?你能不能帮我搞这个啊…… --------------------编程问答-------------------- 老师让你解释解释无非就是看这一坨是不是你自己写的。解释不是重点,重点这不是你写的,一心虚就都白瞎了。 --------------------编程问答--------------------
引用 4 楼 niuniu_861212 的回复:
引用 2 楼 caozhy 的回复:真的没法解释。这东西根本就没有原理,无非就是胶水代码,把那些ado.net的对象按照约定的方式调用下。至于实现的业务逻辑,和把大象装入冰箱一样简单。
可是每个步骤都有实现原理的呀,比如选择菜品,需要下拉菜单,那这个下拉菜单是通过啥实现的内?你能不能帮我搞这个啊……

下拉菜单的服务端控件是DropDownList.
vs会把任何的服务端控件解释成HTML代码.DropDownList对应的就是<select><option></option>...</select>标签.
对于DropDownList控件,你可以手动添加ListItem来增加下拉项,也可以绑定数据源来自动生成下拉项(需设置DataTextField和DataValueField).
不知道这是不是你所说的"实现原理".
--------------------编程问答--------------------

//文件名:BookingCheckForm.aspx.cs
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

using System.Data.SqlClient;
using System.Globalization;
using System.Collections.Specialized;
using System.Text.RegularExpressions;  

public partial class BookingManage_BookingCheckForm : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        string MyForbidString = Session["MyForbid"].ToString();   //Session["MyForbid"]的值给MyForbidString
        if (MyForbidString.IndexOf("C3") > 1)                     //判断MyForbidString里是否包含C3
        {
            Server.Transfer("~/SystemManage/AllErrorHelp.aspx");  
        }
        this.Button1.OnClientClick = "return confirm('请检查客人结账信息是否正确,一旦结账就无法修改,是否继续?')";  
    }
    protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)          //DropDownList1的改变事件
    {//获取客人用餐信息
        string MyID = this.DropDownList1.SelectedValue.ToString();                       //当前DropDownList1的SelectedValue值
        string MySQL = "Select 预交订金 FROM 预订信息 WHERE 预订编号='" + MyID + "'";
        String MySQLConnectionString = ConfigurationManager.ConnectionStrings["MyEateryDBConnectionString"].ConnectionString;
        SqlConnection MyConnection = new SqlConnection(MySQLConnectionString);   
        DataTable MyTable = new DataTable();                                    
        SqlDataAdapter MyAdatper = new SqlDataAdapter(MySQL, MyConnection);
        MyAdatper.Fill(MyTable);
        this.TextBox3.Text = MyTable.Rows[0][0].ToString();                      //数据查询操作  查询预定信息得到数据集  将结果放在TextBox3中
        MyConnection.Close();
        MySQL = "Select SUM(计费金额) FROM 用餐明细 WHERE 用餐单号 LIKE '%" +MyID + "%'";
        MyConnection.Open();
        SqlCommand MyCommand = MyConnection.CreateCommand();
        MyCommand.CommandText = MySQL;
        this.TextBox2.Text = MyCommand.ExecuteScalar().ToString();              //数据查询操作  消费信息得到数据集  将结果放在TextBox2中
        double My实收金额 = Convert.ToDouble(this.TextBox2.Text) - Convert.ToDouble(this.TextBox3.Text) - Convert.ToDouble(this.TextBox4.Text);
        this.TextBox5.Text = My实收金额.ToString();         //计算应收金额    就是这几个输入框中的数字减法   最后放在TextBox5中显示 要对应BookingCheckForm.aspx这个文件看
        if (MyConnection.State == ConnectionState.Open)    //如果数据连接打开  则关闭
            MyConnection.Close();
    }
    protected void Button1_Click(object sender, EventArgs e)
    {//登记预订用餐结账信息   
        if (!(Convert.ToDouble(this.TextBox2.Text) - Convert.ToDouble(this.TextBox3.Text) - Convert.ToDouble(this.TextBox4.Text) - Convert.ToDouble(this.TextBox5.Text) == 0))
            return;   //判断是否结账   但等0时就结帐
        string MyID = this.DropDownList1.SelectedValue.ToString();       //DropDownList1  应该是显示订餐列表的  这个是把选择的那个订单ID读出来
        string MySQL = "Select 用餐单号 FROM 用餐信息 WHERE 用餐单号 LIKE '%" + MyID + "%'";
        String MySQLConnectionString = ConfigurationManager.ConnectionStrings["MyEateryDBConnectionString"].ConnectionString;
        SqlConnection MyConnection = new SqlConnection(MySQLConnectionString);
        DataTable MyTable = new DataTable();                                   //SQL操作
        SqlDataAdapter MyAdatper = new SqlDataAdapter(MySQL, MyConnection);
        MyAdatper.Fill(MyTable);
        MyConnection.Close();
        foreach (DataRow MyRow in MyTable.Rows)                              //遍历MyTable数据集
        {
            string My用餐单号= MyRow[0].ToString();
            MySQL = "Select SUM(计费金额) FROM 用餐明细 WHERE 用餐单号='" + My用餐单号 + "'";
            MyConnection.Open();
            SqlCommand MyCommand = MyConnection.CreateCommand();
            MyCommand.CommandText = MySQL;
            double  My计费金额 = Convert.ToDouble(MyCommand.ExecuteScalar().ToString());
            double  My总用餐金额 =Convert.ToDouble(this.TextBox2.Text);
            double  My总实收金额 =Convert.ToDouble(this.TextBox5.Text);
            Double My总预收金额 = Convert.ToDouble(this.TextBox3.Text);
            double My实收金额 = My计费金额 / My总用餐金额 * (My总实收金额 + My总预收金额);
            NumberFormatInfo MyNumberFormatInfo = new CultureInfo("zh-CN", false).NumberFormat;
            My实收金额 =Convert.ToDouble(String.Format(My实收金额.ToString("N", MyNumberFormatInfo)));    
            double My折扣金额 = My计费金额 - My实收金额;
            DataTable MyNewTable = new DataTable();
            MySQL = "SELECT 入座台位 FROM 用餐信息 WHERE 用餐单号='" + My用餐单号 + "'";
            MyAdatper = new SqlDataAdapter(MySQL, MyConnection);
            MyAdatper.Fill(MyNewTable);
            MyConnection.Close();
            String My台位编号 = MyNewTable.Rows[0][0].ToString();
            MySQL = "Update 用餐信息 Set 用餐金额=" + My计费金额 + ",折扣金额=" + My折扣金额 + ",实收金额=" + My实收金额 + ",补充说明='" + this.TextBox6.Text + "',宾客意见='" + this.TextBox7.Text + "',当前状态='已经结账' WHERE 用餐单号='" + My用餐单号 + "';";
            MySQL += "Update 台位信息 SET 当前状态='空置' WHERE 台位编号='" + My台位编号 + "';";
            MySQL += "Update 预订信息 SET 当前状态='已经处理' WHERE 预订编号='" + MyID + "';";          
            MyConnection.Open();
            MyCommand = MyConnection.CreateCommand();                  //以上这些就是将用餐信息查询更新  
            MyCommand.CommandText = MySQL;
            MyCommand.ExecuteNonQuery();
            MyConnection.Close();
        }
        if (MyConnection.State == ConnectionState.Open)
            MyConnection.Close();
        this.SqlDataSource2.DataBind();                     //这些事数据集绑定  参照.aspx文件就知道在哪显示了
        this.SqlDataSource1.DataBind();
        this.GridView1.DataBind();
        this.DropDownList1.DataBind();        
    }
    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {//在GridView控件单元格中设置短日期显示格式
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            DateTime MyDate = DateTime.Parse(e.Row.Cells[2].Text);
            e.Row.Cells[2].Text = MyDate.ToShortDateString();
            MyDate = DateTime.Parse(e.Row.Cells[3].Text);
            e.Row.Cells[3].Text = MyDate.ToShortDateString();
        }
    }
    protected void Button2_Click(object sender, EventArgs e)
    {//打印客人用餐结账信息
        Response.Redirect("~/BookingManage/BookingCheckPrint.aspx?MyID=" + this.GridView1.SelectedRow.Cells[1].Text.ToString());
    }   //跳转到  上面这个地址  附带参数MyID
}

//真没什么解释的 最多就是说说每句话代表的是什么意思 和设计思路 大部分都是SQL的查询操作   
--------------------编程问答--------------------
引用 6 楼 siqiutong 的回复:
引用 4 楼 niuniu_861212 的回复:引用 2 楼 caozhy 的回复:真的没法解释。这东西根本就没有原理,无非就是胶水代码,把那些ado.net的对象按照约定的方式调用下。至于实现的业务逻辑,和把大象装入冰箱一样简单。
可是每个步骤都有实现原理的呀,比如选择菜品,需要下拉菜单,那这个下拉菜单是通过啥实现的内?你能不能帮我搞这个啊……
下拉菜单的服务端控……
对对对!!!就是这种解释!!就是解释功能是通过什么技术实现的……你能不能帮我看下其他的代码啊?? --------------------编程问答-------------------- 除 --------------------编程问答--------------------
引用 楼主 niuniu_861212 的回复:
因为周六前就要交作业了,所以比较急~除了分儿,我也可以付工资啊!!!!!!

LZ作业要独立完成嘛,别总想着用钱来解决啊,我只说四个字“请联系我”. --------------------编程问答-------------------- 都是最

引用 5 楼 caozhy 的回复:
老师让你解释解释无非就是看这一坨是不是你自己写的。解释不是重点,重点这不是你写的,一心虚就都白瞎了。

其实只要明白功能就ok了
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)          //DropDownList1的改变事件     {//获取客人用餐信息         string MyID = this.DropDownList1.SelectedValue.ToString();                       //当前DropDownList1的SelectedValue值         string MySQL = "Select 预交订金 FROM 预订信息 WHERE 预订编号='" + MyID + "'";         String MySQLConnectionString = ConfigurationManager.ConnectionStrings["MyEateryDBConnectionString"].ConnectionString;         SqlConnection MyConnection = new SqlConnection(MySQLConnectionString);            DataTable MyTable = new DataTable();                                             SqlDataAdapter MyAdatper = new SqlDataAdapter(MySQL, MyConnection);         MyAdatper.Fill(MyTable);         this.TextBox3.Text = MyTable.Rows[0][0].ToString();                      //数据查询操作  查询预定信息得到数据集  将结果放在TextBox3中         MyConnection.Close();         MySQL = "Select SUM(计费金额) FROM 用餐明细 WHERE 用餐单号 LIKE '%" +MyID + "%'";         MyConnection.Open();         SqlCommand MyCommand = MyConnection.CreateCommand();         MyCommand.CommandText = MySQL;         this.TextBox2.Text = MyCommand.ExecuteScalar().ToString();              //数据查询操作  消费信息得到数据集  将结果放在TextBox2中         double My实收金额 = Convert.ToDouble(this.TextBox2.Text) - Convert.ToDouble(this.TextBox3.Text) - Convert.ToDouble(this.TextBox4.Text);         this.TextBox5.Text = My实收金额.ToString();         //计算应收金额    就是这几个输入框中的数字减法   最后放在TextBox5中显示 要对应BookingCheckForm.aspx这个文件看         if (MyConnection.State == ConnectionState.Open)    //如果数据连接打开  则关闭             MyConnection.Close();     }
 
1.如果是你自己做的 不过这好像不太肯那个 其实答辩就算说说这个功能是怎么做的 比如上面的
list的值改变事件 然后获取值进行查询 就说这东西
如果不是你做的那么就只能走第二条路了
2.让你们学校懂的人说一遍这个项目是怎么做的 然后你就按照他说的和老师说呗 应该可以过的
关键是什么 
关键是语气和自信 
骗人先骗己 --------------------编程问答--------------------
引用 11 楼 liangchengfck1 的回复:
都是最

引用 5 楼 caozhy 的回复:老师让你解释解释无非就是看这一坨是不是你自己写的。解释不是重点,重点这不是你写的,一心虚就都白瞎了。
其实只要明白功能就ok了
C# code?1protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)          ……

我是要写文档……不用答辩、、、嗷儿 --------------------编程问答-------------------- 远古级别的写法,大概03-06这段net刚开始普及的时候,和那些刚从从vb,delphi转过来的才这样写东西

你可以从ado.net开始看,adapter,conn,command加起来一天就可以学会了

至于其他的俺们解释不了,也木办法解释。都是基本规定,类似基本规定的根本木办法解释

额,你要觉着实在困难可以分两步走,第一步从数据库结构设计3范式开始,了解后面是怎提供数据支持滴
第二步,从微软官方下一个c#常用代码段,然后输入一些和ado.net相关的快捷代码,vs会自己生成核心片段代码,把这些核心代码段的背下来, 并且能基本了解这些核心代码的含义就差不多了

有上面两步你差不多就可以去忽悠你的导师了 --------------------编程问答-------------------- 飘过
想当初,我们都是这样过来的  ADO.net  ,asp.net  
 一共就三个事件   初始化   下拉菜菜单项改变事件     按钮点击事件

--------------------编程问答-------------------- 楼主你找个程序员男朋友,就什么都解决了。 --------------------编程问答-------------------- 帖子分类你还知道放在ASP.NET里面,已经很不错了,呵呵。 --------------------编程问答--------------------
引用 12 楼 niuniu_861212 的回复:
引用 11 楼 liangchengfck1 的回复:
都是最

引用 5 楼 caozhy 的回复:老师让你解释解释无非就是看这一坨是不是你自己写的。解释不是重点,重点这不是你写的,一心虚就都白瞎了。
其实只要明白功能就ok了
C# code?1protected void DropDownList1_SelectedIndexChanged(object sender, EventA……

写文档 那你去了解业务去吧 --------------------编程问答-------------------- 这代码不解!~~~~~~~~~~~~~~~ 太强大了!!! --------------------编程问答-------------------- 除 --------------------编程问答--------------------
要是个男的发这样代码求解释估计没人理吧? --------------------编程问答--------------------
引用 楼主 niuniu_861212 的回复:
是一个关于快餐店的系统。不用逐句解释。只是对系统功能的编码实现原理的解释。[/size]
例如:
[color=#FF99CC][size=16px](1)dz09011834search.aspx页面
进入dz09011834search.aspx页面,系统首先会显示查找到商品的目录,这主要是通过存放在Session["search"]中的关键字实现的,以及添加L……

1.初始化加载Page_Load事件,判断session:MyForbid是否存在C3,存在跳转至AllErrorHelp.aspx。
否则加载Button1的OnClientClick,OnClientClick在OnClick事件之间触发,为确认弹出框。
2.DropDownList1_SelectedIndexChanged,下拉列表事件。
3.Button1的OnClick事件。
4.GridView1_RowDataBound为GridView行数据源绑定之后事件
5.Button2的OnClick事件。

里面逻辑之间调试看看。 --------------------编程问答-------------------- 才看到,数据库处理和业务逻辑在一起... --------------------编程问答-------------------- 这代码无语了 完全没有三层的概念。。。。。 --------------------编程问答--------------------  string MyForbidString = Session["MyForbid"].ToString();

 Session["MyForbid"]=null 就报错了 --------------------编程问答--------------------
引用 20 楼 zsaaa 的回复:
要是个男的发这样代码求解释估计没人理吧?
哈哈哈 --------------------编程问答-------------------- 这代码 刚学ado.net的时候就基本上看得懂了·· --------------------编程问答--------------------
引用 24 楼 liqiang665 的回复:
string MyForbidString = Session["MyForbid"].ToString();

 Session["MyForbid"]=null 就报错了


你直接把这段代码执行必须出错啊 session都没定义直接引用
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,