我想请人帮我解释一下.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的对象按照约定的方式调用下。至于实现的业务逻辑,和把大象装入冰箱一样简单。 --------------------编程问答--------------------
可是作业就是要解释啊!!!或者……这段没啥好解释的?我都看不懂…怎么断???到哪儿断??我是文盲啊!!! --------------------编程问答--------------------
可是每个步骤都有实现原理的呀,比如选择菜品,需要下拉菜单,那这个下拉菜单是通过啥实现的内?你能不能帮我搞这个啊…… --------------------编程问答-------------------- 老师让你解释解释无非就是看这一坨是不是你自己写的。解释不是重点,重点这不是你写的,一心虚就都白瞎了。 --------------------编程问答--------------------
下拉菜单的服务端控件是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的查询操作
LZ作业要独立完成嘛,别总想着用钱来解决啊,我只说四个字“请联系我”. --------------------编程问答-------------------- 都是最
其实只要明白功能就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.让你们学校懂的人说一遍这个项目是怎么做的 然后你就按照他说的和老师说呗 应该可以过的
关键是什么
关键是语气和自信
骗人先骗己 --------------------编程问答--------------------
我是要写文档……不用答辩、、、嗷儿 --------------------编程问答-------------------- 远古级别的写法,大概03-06这段net刚开始普及的时候,和那些刚从从vb,delphi转过来的才这样写东西
你可以从ado.net开始看,adapter,conn,command加起来一天就可以学会了
至于其他的俺们解释不了,也木办法解释。都是基本规定,类似基本规定的根本木办法解释
额,你要觉着实在困难可以分两步走,第一步从数据库结构设计3范式开始,了解后面是怎提供数据支持滴
第二步,从微软官方下一个c#常用代码段,然后输入一些和ado.net相关的快捷代码,vs会自己生成核心片段代码,把这些核心代码段的背下来, 并且能基本了解这些核心代码的含义就差不多了
有上面两步你差不多就可以去忽悠你的导师了 --------------------编程问答-------------------- 飘过
想当初,我们都是这样过来的 ADO.net ,asp.net
一共就三个事件 初始化 下拉菜菜单项改变事件 按钮点击事件
--------------------编程问答-------------------- 楼主你找个程序员男朋友,就什么都解决了。 --------------------编程问答-------------------- 帖子分类你还知道放在ASP.NET里面,已经很不错了,呵呵。 --------------------编程问答--------------------
写文档 那你去了解业务去吧 --------------------编程问答-------------------- 这代码不解!~~~~~~~~~~~~~~~ 太强大了!!! --------------------编程问答-------------------- 除 --------------------编程问答--------------------
要是个男的发这样代码求解释估计没人理吧? --------------------编程问答--------------------
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 就报错了 --------------------编程问答-------------------- 哈哈哈 --------------------编程问答-------------------- 这代码 刚学ado.net的时候就基本上看得懂了·· --------------------编程问答--------------------
你直接把这段代码执行必须出错啊 session都没定义直接引用
补充:.NET技术 , ASP.NET