|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
我觉得很重要,一般所说的不重要应该指的是:你学好一种以后再学另一种就很容易了。(因为这样大家可能有一个错觉就是语言不是很重要,只要随便学一种就可以了,其实不是这样的。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[DataGrid1.SelectedIndex].Cells[2].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++编译器在上面直接运行。 |
|