山那边是海 发表于 2015-1-16 22:42:44

ASP.NET网页编程之基于ASP.NET手艺的驾校网页计划

我觉得很重要,一般所说的不重要应该指的是:你学好一种以后再学另一种就很容易了。(因为这样大家可能有一个错觉就是语言不是很重要,只要随便学一种就可以了,其实不是这样的。asp.net|计划|网页|网页计划  摘要本文以驾校办理体系为例,先容怎样使用asp.net和SQLserver2000来举行静态网页计划,以满意用户对数据库及时更新和查询的请求。

  关头词asp.net;c#;SQLserver2000

  弁言

  最近几年来,跟着Internet的敏捷开展和网页制造手艺的日臻完美,驾校信息办理体系软件的计划也日益复杂化和标准化。这里我们将接纳asp.net静态网页手艺,经由过程编写c#剧本言语对SQLserver2000数据库举行操纵,以完成体系中的诸多功效,如“报名录进”,“报名材料查询”,“确认及格学员”,“学员材料查询”等等。

  asp.net、c#和ado.net

  1、ASP.NET是microsoft推出的一种壮大的Web服务器端手艺,与ASP比拟,ASP.NET具有更高功能的编译特征与缓存机制。撑持多种开辟言语,包含C#、J#、VisualBasic和JScript。ASP.NET分别程序代码与显现内容,使代码看起来更简便。因为ASP.NET的程序代码是编译过的,以是实行时会比ASP快良多。
  2、C#言语是Microsoft针对.Net平台开辟的一种全新的编程言语。它是一种面绝对象的开辟言语,因而具有封装、承继和多态性。C#语法简便,效力高,而且能够与以其他.NET言语编写的代码举行兼容。
  3、ADO.NET用于在Microsoft.NET平台中供应数据会见服务。它感化在服务器端经由过程实行SQL命令对数据库举行会见和更新。ADO.net次要包含Connection,Dataset和Command三个工具,它们的次要功效以下:

  Connection工具:毗连数据库;
  Dataset工具:存取数据库的内容;
  Command工具:对数据库实行查询指令,和实行非查询(更新、删除和增加等)命令。

  网页计划

  上面将以驾校办理体系软件中的“学员材料查询与修正”为例申明有关网页计划成绩。(c#)

  起首,在SQLserver2000中建一个名为”jx”的数据库,包括表”车型”、”学员材料”和视图”V学员材料”。

  其次,”学员材料查询与修正”次要由三个页面构成,为:xy_search.aspx、xy_search_win.aspx、xy_search_detail.aspx,分离用于输出查询前提、显现查询了局、显现个中一笔记录的具体材料并依据必要举行修正。

  1、xy_search.aspx

  在该页面中依据用户的查询前提计划页面,办法:用鼠标左键选中工具箱web窗体中的控件,拖拽到页面,安排到符合的地位,然后设置该控件的属性,别的的控件相似。如所示。







  页面计划好要举行背景代码的编写,在xy_search.aspx.cs中举行:



usingSystem.Data.SqlClient;
usingSystem.Data.SqlTypes;//增加定名空间

publicstringname1
{
 get
 {
  return
  TextBox9.Text.Trim();
 }
}

//界说TextBox9中的内容为公用变量,设置文本框的Visible属性为False

privatevoidPage_Load(objectsender,System.EventArgse)
{
 Page.RegisterStartupScript("focus","<scriptlanguage=javascript>document.getElementById(TextBox1).focus();</script>");//拔出java剧本(聚焦TextBox1)

 if(!IsPostBack)//反省是不是是第一次加载本页
 {
  SqlConnectionmyConnection=new SqlConnection("server=JXSERVER;uid=sa;pwd=1818;database=jx");

  myConnection.Open();//毗连数据库
  SqlDataAdaptermyAdapter=newSqlDataAdapter("select*from车型",myConnection);//创建myAdapter工具
  DataSetmyDataSet=newDataSet();//创建一个myDataSet工具 
  myAdapter.Fill(myDataSet,"车型");//把实行select语句失掉的纪录增加到myDataSet中  DropDownList1.DataSource=myDataSet.Tables["车型"].DefaultView;
  //指定DropDownList1数据源
  DropDownList1.DataTextField="车型";
  //指定DropDownList1的文本值为“车型”表中‘车型’字段
  DropDownList1.DataValueField="车型ID";

  //指定DropDownList1的Value值为“车型”表中‘车型ID’字段 

  DropDownList1.DataBind();//绑定命据
  DropDownList1.SelectedValue="C1";//指定DropDownList1的默许Value值为C1
  myConnection.Close();//封闭数据库毗连
 }
}//在此处安排用户代码以初始化页面

/*因为在完成编削功效的同时能够完成查询功效因而仅以编削功效为例*/

privatevoidButton2_Click(objectsender,System.EventArgse)
{
 TextBox9.Text="where姓名like"+TextBox1.Text.Trim()+"";
 //界说姓名含混查询前提语句

 Server.Transfer("xy_search_win.aspx");

 //传送姓名查询前提语句到第二个页面
}

privatevoidButton4_Click(objectsender,System.EventArgse)
{
 TextBox9.Text="where证件号码="+TextBox2.Text.Trim()+"";
 //证件号码=TextBox2.Text的值
 Server.Transfer("xy_search_win.aspx");
}

privatevoidButton6_Click(objectsender,System.EventArgse)
{
 extBox9.Text="where学号="+TextBox3.Text.Trim()+"";
 //学号=TextBox3.Text的值
 Server.Transfer("xy_search_win.aspx");
}
privatevoidButton8_Click(objectsender,System.EventArgse)
{
 TextBox9.Text="where学号like"+TextBox4.Text.Trim()+"%";
 //学号与TextBox4.Text的值含混婚配
 Server.Transfer("xy_search_win.aspx");
}

privatevoidButton10_Click(objectsender,System.EventArgse)
{
 TextBox9.Text="where报名日期between"+TextBox5.Text.Trim()+"and"+TextBox6.Text.Trim()+"";
 //TextBox5.Text>=报名日期<=TextBox6.Text
 Server.Transfer("xy_search_win.aspx");
}

privatevoidButton12_Click(objectsender,System.EventArgse)
{
 TextBox9.Text="where报考车种="+DropDownList1.SelectedValue.ToString().Trim()+"";
 //报考车种=DropDownList1选中项的value值
 Server.Transfer("xy_search_win.aspx");
}

privatevoidButton14_Click(objectsender,System.EventArgse)
{
 TextBox9.Text="where欠款金额between"+Convert.ToDecimal(TextBox7.Text.Trim())+"and"+Convert.ToDecimal(TextBox8.Text.Trim())+"";

 //注重要将字符串范例转换成泉币范例decimal

 Server.Transfer("xy_search_win.aspx");
}  2、xy_search_win.aspx

  在该页面中显现查询了局,如所示,别的还能够选中任一笔记录举行删除和编纂操纵。注重:在DataGrid1的”属性天生器”中增加‘删除’和‘选择’列,并将选择列的文本设成‘编纂’。





  xy_search_win.aspx.cs代码以下:


usingSystem.Data.SqlClient;//增加定名空间

publicclassxy_search_win:System.Web.UI.Page
{
 publicxy_searchsourcepage;

 //界说第一个页面为以后页面的源页面

 publicstringname1
 {
  get
  {
   returnDataGrid1.Items.Cells.Text.ToString();
  }
 }//界说所选行的‘学号’为大众变量

 privatevoidsearch1()//界说一个查询子程序
 {
  SqlConnectionmyConnection=newSqlConnection("server=JXSERVER;uid=sa;pwd=1818;database=jx");

  myConnection.Open();//毗连数据库jx
  SqlDataAdapteradapter1=newSqlDataAdapter("select学号,姓名,报考车种,接洽体例,证件号码,培训体例,欠款金额,备注fromV学员材料"+TextBox1.Text+"orderby学号",myConnection);//查询视图

  DataSetmyDataSet=newDataSet();Adapter1.Fill(myDataSet,"result1");    
  DataGrid1.DataSource=myDataSet.Tables["result1"];
  DataGrid1.DataKeyField="学号";//指定关头字段为学号
  DataGrid1.DataBind();//绑定命据
  myConnection.Close();
 }

 privatevoidPage_Load(objectsender,System.EventArgse)
 {
  if(!IsPostBack)
  {
   sourcepage=(xy_search)Context.Handler;
   //利用Context.Handler属性来取得前一个页面实例工具的援用
   TextBox1.Text=sourcepage.name1;//将第一个页面传过去的查询语句赋给TextBox1
   search1();//挪用查询子程序显现查询了局
  }
 }

 privatevoidDataGrid1_DeleteCommand(objectsource,System.Web.UI.WebControls.DataGridCommandEventArgse)//”删除”按钮操纵代码
 {
  SqlConnectionmyConnection=newSqlConnection("server=JXSERVER;uid=sa;pwd=1818;database=jx");

  myConnection.Open();
  stringmydelete="deletefrom学员材料where学号="+DataGrid1.DataKeys[(int)e.Item.ItemIndex]+"";//删除“学员材料”表中‘学号’即是所选行对应的学号

  SqlCommandmyCommand=newSqlCommand(mydelete,myConnection);//创立myCommand工具
  myCommand.ExecuteNonQuery();//实行sql语句
  myConnection.Close();
  search1();//从头挪用子程序革新页面;
 }
 privatevoid
 DataGrid1_SelectedIndexChanged(objectsender,System.EventArgse)
 //”编纂”按钮命令
 {
  Server.Transfer("xy_search_detail.aspx");
 }

 //转到第三个页面举行具体编纂
}
  3、xy_search_detail.aspx

  在该页面中能够对学员材料中带*号的项举行编纂,别的项的文本框的属性’ReadOnly’设置成true,不成以举行修正,如所示







usingSystem.Data.SqlClient;

publicclassxy_search_detail:System.Web.UI.Page
{
 publicxy_search_winsourcepage;//设置第二个页面为以后页面的源页面
 privatevoidmyselect1()//界说查询子程序
 {
  SqlConnectionmyConnection=newSqlConnection("server=JXSERVER;uid=sa;pwd=1818;database=jx");

  myConnection.Open();
  stringmyselect1="select学号,姓名,性别,报考车种,证件号码,手机,小通达,室庐德律风,办公德律风,备注from学员材料where学号="+TextBox10.Text+"";//查询视图,TextBox10.Text为第二个页面传送过去的学号

  SqlCommandmyCommand1=newSqlCommand(myselect1,myConnection);
  SqlDataReadermyReader1=myCommand1.ExecuteReader();//实行读操纵
  while(myReader1.Read())//该笔记录不为空时实行{…}里的程序
  {
   TextBox1.Text=myReader1.GetString(0);//学号赋值给TextBox1
   TextBox2.Text=myReader1.GetString(1);//姓名
   TextBox3.Text=myReader1.GetString(2);//性别
   TextBox4.Text=myReader1.GetString(3);//报考车种
   TextBox5.Text=myReader1.GetString(4);//证件号码
   if(myReader1.IsDBNull(5)==false)
   {
    TextBox9.Text=myReader1.GetString(5);
    //手机
   }
   //判别该纪录的手机这一列数据是不是为空
   else{TextBox9.Text="";}
   if(myReader1.IsDBNull(6)==false)
   {TextBox11.Text=myReader1.GetString(6);//小通达}
   else{TextBox11.Text="";}
   if(myReader1.IsDBNull(7)==false)
   {TextBox12.Text=myReader1.GetString(7);//室庐德律风}
   else{TextBox12.Text="";}
   if(myReader1.IsDBNull(8)==false)
   {TextBox13.Text=myReader1.GetString(8);//办公德律风
  }
  else{TextBox13.Text="";}
  if(myReader1.IsDBNull(9)==false)
  {TextBox7.Text=myReader1.GetString(9);}//备注
  else{TextBox7.Text="";}
 }
 myReader1.Close();
 myConnection.Close();
}

privatevoidPage_Load(objectsender,System.EventArgse)
{
 if(!IsPostBack)
 {
  sourcepage=(xy_search_win)Context.Handler;
  TextBox10.Text=sourcepage.name1;//将第二个页面的‘学号’值传到第三个页面
  Label3.Text="";//提醒标签置空
  myselect1();//挪用查询材料子程序
 }
}

privatevoidButton1_Click(objectsender,System.EventArgse)//“修正“按钮命令
{
 SqlConnectionmyConnection=newSqlConnection("server=JXSERVER;uid=sa;pwd=1818;database=jx");

 myConnection.Open();
 stringlxfs=TextBox9.Text.Trim()+"+"+TextBox11.Text.Trim()+"+"+_
TextBox12.Text.Trim()+"+"+TextBox13.Text.Trim()+"+";//界说接洽体例

 stringmyupdate="update学员材料set_
手机="+TextBox9.Text.Trim()+",小通达="+TextBox11.Text.Trim()+",_
室庐德律风="+TextBox12.Text.Trim()+",办公德律风="+TextBox13.Text.Trim()+",_
备注="+TextBox7.Text+",接洽体例="+lxfs+"where学号="+TextBox10.Text.Trim()+"";

 SqlCommandmyCommand2=newSqlCommand(myupdate,myConnection);
 MyCommand2.ExecuteNonQuery();//
 Label3.Text="修正乐成,请持续!";
 myConnection.Close();
}

privatevoidButton2_Click(objectsender,System.EventArgse)//“重置”按钮命令
{
 Label3.Text="";//提醒标签置空
 myselect1();//挪用查询材料子程序
}

}

  停止语

  本文复杂先容使用了怎样使用VisualStudio.NET2003开辟ASP.NETWeb使用程序。开辟出来的该体系具有的查询快速、存储量年夜、牢靠性初等特性,无效地进步了驾校办理体系的效力。捆绑编译器。用户不需要受制于厂家,自己就能将程序在新平台上编译运行。除了牛B轰轰的linux,估计也没有系统捆绑c/c++的编译器,而且许多新平台都无法支持复杂的c/c++编译器在上面直接运行。

山那边是海 发表于 2015-1-19 21:29:57

它可通过内置的组件实现更强大的功能,如使用A-DO可以轻松地访问数据库。

再现理想 发表于 2015-1-27 06:31:07

asp.net空间的支持有:ASP.NET1.1/虚拟目录/MicrosoftFrontPage2000扩展/CDONTS,同时他的网站上也提供了Asp.net的使用详解和程序源代码,相信对使用ASP.NET编程的程序员来说会非常有用哦!

变相怪杰 发表于 2015-2-5 01:44:19

主流网站开发语言之JSP:JSP和Servlet要放在一起讲,是因为它们都是Sun公司的J2EE(Java2platformEnterpriseEdition)应用体系中的一部分。

精灵巫婆 发表于 2015-2-11 00:47:27

ASP.NET可以无缝地与WYSIWYGHTML编辑器和其他编程工具(包括MicrosoftVisualStudio.NET)一起工作。这不仅使得Web开发更加方便,而且还能提供这些工具必须提供的所有优点,包括开发人员可以用来将服务器控件拖放到Web页的GUI和完全集成的调试支持。微软为ASP.net设计了这样一些策略:易于写出结构清晰的代码、代码易于重用和共享、可用编译类语言编写等等,目的是让程序员更容易开发出Web应用,满足计算向Web转移的战略需要。

莫相离 发表于 2015-3-1 19:11:35

代码的可重用性差:由于是面向结构的编程方式,并且混合html,所以可能页面原型修改一点,整个程序都需要修改,更别提代码重用了。

飘灵儿 发表于 2015-3-10 22:29:20

最强的技术支持WebService,而且有.NET的所有library做后盾。而且ASP.NET在.NET3.5中还有微软专门为AJAX开发的功能--ASP.NETAJAX。

只想知道 发表于 2015-3-17 11:20:08

那么,ASP.Net有哪些改进呢?

老尸 发表于 2015-3-24 09:04:22

网页从开始简单的hmtl到复杂的服务语言,走过了10多个年头,各种技术层出不穷,单个的主流技术也在不断翻新的版本,现在分析下各种语言的区别、优势、劣势、开发注意事项!
页: [1]
查看完整版本: ASP.NET网页编程之基于ASP.NET手艺的驾校网页计划