一 https://www.doczj.com/doc/5c12328050.html,控件一、作用:
制作用户界面,如登陆界面、注册用户;
要求:制作登陆网页、注册网页;
二、控件:
Label控件
Button控件
Image控件
HyperLink控件
ImageButton和LinkButton控件
TextBox控件
CheckBox控件和CheckBoxList控件
DropDownList控件
ListBox控件
RadioButton控件和RadioButtonList控件
注意:常用控件的主要属性;
<一>Label标签
id--控件名字,可根据需要修改;
Text--提示文字;
<二>TextBox文本框
id--控件名字,可根据需要修改;
Text--提示文字;
TextMode--singleLine,Password,MultiLine
<三>按钮
1、Button按钮
id--控件名字,可根据需要修改;
Text--提示文字;
Click--单击事件
2、LinkButton链接按钮
id--控件名字,可根据需要修改;
Text--提示文字;
Click--单击事件
3、ImageButton图片按钮
id--控件名字,可根据需要修改;
ImageUrl--显示图片
注意一定要在自己文件夹建立专门的图片文件夹,并且把图片保存到图片文件夹内;
<四>单选多选按钮
--单选RadioButton、RadioButtonList;多选CheckBox、CheckBoxList
重点:RadioButtonList、CheckBoxList
id--控件名字,可根据需要修改;
**Items---选项名表,输入Text,Value
<五>文件上传控件--FileUpload
----比较难,不要求,但实际工作中经常使用到
三、一些相关编程
1、Label显示字符:
Label1.Text="abc";
2、读取TextBox输入的字符串:
string aa=TextBox1.Text;
3、字符与数字转换
int aa=Convert.ToInt30(TextBox1.Text);
string bb=aa.ToString();
4、读DropDownList选定的值:
string bb=DropDownList1.SelectedValue;
5、读单选项RadioButtonList1的值:
string ma=RadioButtonList1.SelectedValue;
6、读取多选CheckBoxList1控件选择的值
int imax=CheckBoxList1.Items.Count;
string cc="";
for(int i=0;i { if(CheckBoxList1.Items[i].Selected) cc+=CheckBoxList1.Items[i].Value; } 7、上传图片程序: ....Button1_Click() { string newfilename = TBnewFilename.Text;//新文件名字 string filename = Server.MapPath("image") + "\\" + newfilename + ".jpg";";//准备图片文件保存位置 Response.Write(filename); FileUpload1.PostedFile.SaveAs(filename);//保存图片文件 string imgurl = "~\\image\\"+newfilename+".jpg";////准备图片文件 Image1.ImageUrl = imgurl; //显示图片文件 } 四、验证控件: RequiredFieldValidator控件 CompareValidator控件 RangeValidator控件 RegularExpressionValidator控件 ValidationSummary控件 注意:验证控件的主要属性; 五、验证控件设置:---通常是检查文本框输入值是否符合要求 1、必填RequiredFieldValidator设置 a、ControlToValidate---要检查的文本框名 b、ErrorMessage--出错提示; 2、CompareValidator控件设置 a、ControlToValidate---要检查的文本框名 b、ControlToCompare---被比较的文本框名或字符串 c、ErrorMessage--出错提示; 3、RangeValidator控件设置 a、ControlToValidate---要检查的文本框名 b、ErrorMessage--出错提示; c、Type--string字符串,integer--整数 d、maxinumvalue---最大值 e、mininumvalue--最小值 4、RegularExpressionValidator控件设置 a、ControlToValidate---要检查的文本框名 b、ErrorMessage--出错提示; c、ValidationExpression:正则表达式;参见后面正则验证 5、ValidationSummary控件设置 直接放入,不需修改 六、正则验证 1、[]定义可以接受字符。如[a-z]可接受a~z范围小写字母。[aAcT]只接受aAcT 字母。[a-zA-Z0-9]。 2、{}定义必须输入字符数。如{5},{2,5},{6,}6个以上字符。 3、.任何字符。 4、|表示或。[a-z]{6}|[A-Z]{7} 5、\为转义符号。如\(、\)表示接受字符”()” 注意:比如注册网页中,只有注册按钮需要验证,其他按钮不需要验证,可把其他按钮的:causesvalidation=FALSE 要求: 1、制作一个注册网页,完成注册功能,并对数据进行验证,样式参见下图 二 https://www.doczj.com/doc/5c12328050.html,常用对象(也称为内置对象) 一、作用 内置对象:主要负责信息读取、发送、保存等功能。 二、Response对象 1、输出信息: Response.Write("abc ok"+" 2、读文本文件输出到客户浏览器: string textpath=Server.MapPath("dz0642.txt"); Response.ContentEncoding = System.Text.UnicodeEncoding.Default; Response.WriteFile(textpath); 3、链接的网址: a.链接其他网站: Response.Redirect("https://www.doczj.com/doc/5c12328050.html,"); b.链接网页 Response.Redirect("abc.aspx"); c.传递变量及值的链接 string bookid="0302"; Response.Redirect("abc.aspx?bookid="+bookid); 解释: 二、Request对象 1、abc.aspx接收其他网页传递的数据(接收Response的3c传递过来变量bookid): private void Page_Load() { string bookid=Request.QueryString["bookid"]; Label1.Text=bookid; } 2、读取客户机的机器信息 string strip=https://www.doczj.com/doc/5c12328050.html,erHostAddress; string strDNS=https://www.doczj.com/doc/5c12328050.html,erHostName; 三、server对象 1、读取文件路径: string strpath=Server.Mappath("readme.txt"); 四、Application 1.作用: 实现不同用户之间进行数据共享,比较象QQ群聊天,实现大家信息交流。 下面一个是使用计数器 if (Application["online"] == null) Application["online"] = 1; else Application["online"] = Convert.ToInt32(Application["online"]) + 1; 五、Session 1.作用: 保存个人机密数据,在整个网站的不同网页使用这些数据. 2.如何写Session Session["pwd"]=TextBox1.Text; 3.如何读Session Label2.Text=Session["pwd"].ToString(); 4、判断Session是否为空 if(Session["name"]==null) 命令; 六、Cookies 1.作用: 保存个人机密数据. 2.如何写入Cookies? Response.Cookies["name"].Value=TextBox1.Text; 3.如何读取Cookies? string name2=Request.Cookies["name"].Value; 要求: 制作一个输入信息网页,分别使用链接方式、 session.cookies,application保存数据;然后在另一个网页读取数据。 三1 SQL常用命令 <一>教程使用数据库为dangdang,结构如下: book:书号,lei,isbn,书名,作者,出版社,单价,简介,图片文件名 lei:类号,类名 usename:账号,姓名,密码,email,省,城市,手机 购物车:账号,书号,书名,数量,单价,金额 订单:订单编号(标识),顾客编号,金额,时间,状态,积分//重点谁,订单号,什么时间订了多少金额书 订单清单:订单编号,书号,书名,数量,单价,金额//所订书号,书名,数量,单价,每种书的金额 <二>SQL查询分析器执行---查询、增加、删除、修改命令(需求特别熟悉) Select * from book select * from usename where 姓名='张三' and 密码='123456' Insert usename values('3000001','张三','123456','chen@https://www.doczj.com/doc/5c12328050.html,','北京','北京海淀',135********) insert usename(账号,姓名,密码,email) values('30004444','李四 ','kj0641','li123@https://www.doczj.com/doc/5c12328050.html,') Delete from usename where 账号='30000001' Update usename set 账号='30333333',姓名='张三' where 账号='30000001' <三>C#把输入数值代入SQL命令 注意:C#使用查询、增加、删除、修改命令,必须注意一些特点。 string name=TBname.Text; string pwd=TBpwd.Text; string SelSql="select * from 顾客 where 姓名='"+name+"' and 密码 ='"+pwd+"'"; 1、不变的使用双引号引起; 2、变动的使用变量来代替; 3、相互之间使用+连接起来; https://www.doczj.com/doc/5c12328050.html,访问数据库基础知识 <一>https://www.doczj.com/doc/5c12328050.html,特别重要的对象: SqlConnection //Sql对象,负责打开Open或关闭Close服务器和数据库SqlCommand //Sql命令对象,负责对表进行增加删除修改操作 DataSet //内存数据库对象,负责在计算机机保存SQL数据库SqlDataAdapter //桥梁--数据适配器对象,主要在查询时,把数据读到C# GridView //表格对象:用表格方式显示内存数据库的数据SqlDataReader //SQL读取数据对象,负责读出数据库的数据,不能进行插入删除 <二>https://www.doczj.com/doc/5c12328050.html,主要类型及步骤: 1.查询程序步骤: 1.1)打开SQL数据库 a.定义字符串(说明服务器,数据库,用户) b.定义SQL数据库 c.打开连接 1.2)对表进行查询操作 a.定义字符串变量sel--string sel="select * from 表"; b.定义C#数据库DataSet--对等SQL数据库 c.定义C#与SQL桥梁 d.通过桥梁,把SQL数据写到DataSet 1.3)显示DataSet数据,或利用DataSet数据进行各种处理 1.4)关闭SQL数据库 2.插入删除修改程序步骤: 2.1)打开SQL数据库 a.定义字符串(说明服务器,数据库,用户) b.定义SQL数据库 c.打开数据库 2.2)对表进行查询操作 a.定义操作字符串 string ins="insert 表 values(值1,值2,...)"; string del="delete from 表 where 条件"; string upd="update 表 set 字段1=值1 where 条件"; b.定义命令cmd; SqlCOmmand cmd=new SqlCommand(操作字符串,SQL数据库) c. 执行上述命令,cm d.ExcuteNonQuery(); 2.3)关闭SQL数据库 三3 https://www.doczj.com/doc/5c12328050.html,访问数据库 --select查询表 一、准备工作: 1、增加SQL数据库---企业管理器---(local)服务器--- 右键---全部任务---附加数据库---选择数据库名, 即可; 2、从工具箱--数据---GridView控件拖入网页; 3 、网页代码文件 .cs---使用命名空间--using System.Data.SqlClient; 二、编写代码 包括三部分:1使用命令空间;2进入网页时完成任务--Page_Load();3显示数据. <一>使用命名空间---System.Data.SqlClient; using System.Data.SqlClient; <二>进入网页时完成任务------Page_load(....)写代码 protected void Page_Load(object sender, EventArgs e)//进入网页就自动执行本过程; { //自己写1开始 if (!IsPostBack)//第一次进入网页,执行下列命令 { Book();//显示数据--Book()(需要自己编写) } //自己写1结束 } //Book()开始 //...代码参看--代码及解释 //Book()结束 <三>Book()--对表进行查询,找到适合类型 1.1)定义要打开SQL数据库 a.定义字符串(说明服务器,数据库,用户) b.定义SQL数据库 c.打开连接 1.2)对表进行查询操作 a.定义字符串变量sel--string sel="select * from 表"; b.定义C#数据库DataSet--对等SQL数据库 c.定义C#与SQL桥梁 d.通过桥梁,把SQL数据写到DataSet 1.3)显示DataSet数据,或利用DataSet数据进行各种处理 1.4)关闭SQL <四>代码及解释 //自己写2开始 private void Book()//Book程序 { //1.1)打开SQL数据库 //a.定义数据库字符串(说明服务器,数据库,用户sa或admin),任选其一 //SQL用户sa // 服务器和数据库--服务器=(local);数据库=dangdang;用户名=sa;密码=空--好记 //windows用户admin // server=(local);database=dangdang;Integrated Security=SSPI-比较易用 string strconn = "server=(local);database=dangdang;uid=sa;pwd=";//定义数据库字符串 SqlConnection SqlConn = new SqlConnection(strconn); //定义SQL数据库 SqlConn.Open(); //打开SQL 1.2)对表进行查询操作 string SqlSel = "select 书号,书名,作者,出版社,单价,图片文件名 from book"; //a.定义字符串变量sel--string sel="select * from 表"; DataSet ds = new DataSet(); //b.定义C#数据库DataSet--对等SQL数据库 SqlDataAdapter ada = new SqlDataAdapter(SqlSel, SqlConn);//c.定义C#与SQL桥梁 ada.Fill(ds, "book"); //d.通过桥梁,把SQL数据写到DataSet //1.3)显示DataSet数据 GridView1.DataSource = ds.Tables["book"].DefaultView;//GridView的数据来自ds.Tables["book"] GridView1.DataBind();//把内存数据库的数据与GridView绑在一起,显示; //1.4)关闭SQL数据库 SqlConn.Close(); } //自己写2结束 注意事项: 1, 输入代码,如果没有相应提示,就出错了。 通常出错事项:1 ,没有使用命名空间,2,查询语句出错; 2,如果ada.Fill(ds, "book")出错,表示你对SQL命令不熟悉。 通常都是查询语句出错,解决方法到查询分析器去执行 四1 https://www.doczj.com/doc/5c12328050.html,查询应用 <一>使用SQL数据库时登陆用户 1、使用SQL用户sa(空密码)登陆服务器和数据库连接字符: string strconn="server=(local);database=dangdang;uid=sa;pwd="; 2、使用windows的admin集成登陆 string strconn=="server=(local);database=dangdang;Integrated Security=SSPI"; <二>应用举例 例一:显示某表内容 protected void Page_Load(object sender, EventArgs e)//进入网页就自动执行本过程; { if (!IsPostBack)//第一次进入网页,执行下列命令 { Book();//调用下面的DispBook()程序 } } protected void Book()//Book程序 { //1打开sql数据库 string strconn = "server=(local);database=dangdang;integrated security=sspi;"; SqlConnection SqlConn = new SqlConnection(strconn); SqlConn.Open(); //2对表查询 string sel = "select * from book"; DataSet DS = new DataSet(); SqlDataAdapter ada = new SqlDataAdapter(sel, SqlConn); ada.Fill(DS, "chen"); //3显示数据库 GridView1.DataSource = DS.Tables["chen"].DefaultView; GridView1.DataBind(); //4关闭sql数据库 SqlConn.Close(); } 例二:登陆 private void Button1_Click(object sender, System.EventArgs e) { string num = TBnum.Text; string pwd = TBpwd.Text; if (num.Length > 0 && pwd.Length > 0) { //1--打开 SQl数据库 string strconn = "server=(local);database=dangdang;uid=sa;pwd="; SqlConnection SqlConn = new SqlConnection(strconn); SqlConn.Open(); //2--对表查询 string sel = "select * from usename where 账号='" + num + "' and 密码='" + pwd + "'"; DataSet ds = new DataSet(); SqlDataAdapter ada = new SqlDataAdapter(sel, SqlConn); ada.Fill(ds, "chen"); //3显示--判断是否有此人 int i = ds.Tables["chen"].Rows.Count; if (i > 0) Label1.Text = "热烈欢迎笨" + ds.Tables["chen"].Rows[0]["姓名"].ToString(); else Label1.Text = "账号或密码错误"; //4关闭sql数据库 SqlConn.Close(); } } 思考: 1.如何明确提示是账号错误还是密码错误? 例三.显示单条记录--比如当当查书 //1打开SQL数据库象 string strconn = "server=(local);database=dangdang;uid=sa;pwd="; SqlConnection SqlConn = new SqlConnection(strconn); SqlConn.Open(); //2查询表 string SqlSel = "select * from book where 书号='0101'"; DataSet ds = new DataSet();//内存数据库 SqlDataAdapter ada = new SqlDataAdapter(SqlSel, SqlConn); ada.Fill(ds, "book"); //3--显示 if (ds.Tables["book"].Rows.Count > 0)//如果book表中记录数>0 { Image1.ImageUrl = ds.Tables["book"].Rows[0]["图片文件名 "].ToString();//显示表第一条记录的"图片文件名"字段的值 Label1.Text = ds.Tables["book"].Rows[0]["书号"].ToString();//显示表第一条记录的"书号"字段的值 Label2.Text = ds.Tables["book"].Rows[0]["书名"].ToString();//显示表第一条记录的"书名"字段的值 Label3.Text = ds.Tables["book"].Rows[0]["单价"].ToString();//显示表第一条记录的"单价"字段的值 } else Label1.Text = "没有找到相应书"; //4关闭sql数据库 SqlConn.Close(); 思考题: 1.如何输入书号查找相应图书? 2、注册时,如何避免同一同学反复注册,如某同学注册时拼命按注册按钮? 四2 https://www.doczj.com/doc/5c12328050.html,插入删除修改应用 <一>程序步骤: 参见《32 https://www.doczj.com/doc/5c12328050.html,访问数据库》中“插入删除修改程序步骤” <二>应用举例 例1、删除用户 protected void BtnDel_Click(object sender, EventArgs e) { string name = TBname.Text; if(name.Lengt>0) { //1打开sql数据库 string strconn = "server=(local);database=dangdang;uid=sa;pwd="; SqlConnection SqlConn = new SqlConnection(strconn); SqlConn.Open(); //2 插入删除修改操作 string ins = "delete from usename where 姓名='"+name+"'"; SqlCommand SqlCmd = new SqlCommand(ins, SqlConn); SqlCmd.ExecuteNonQuery(); //3关闭sql数据库 SqlConn.Close(); } } 例2、注册新用户 protected void BtnReg_Click(object sender, EventArgs e) { string num = TBnum.Text; string name = TBname.Text; string pwd1 = TBpwd1.Text; string pwd2 = TBpwd2.Text; string email = TBemail.Text; string city1 = DDLcity1.SelectedValue; string city2 = DDLcity2.SelectedValue; string phone = TBphone.Text; //1 打开sql数据库 string strconn = "server=(local);database=dangdang;uid=sa;pwd="; SqlConnection SqlConn = new SqlConnection(strconn); SqlConn.Open(); //2对表插入 string ins = "insert usename values('" + num + "','"+name+"','"+pwd1+"','"+email+"','"+city1+"','"+city2+"','"+phone +"')"; SqlCommand SqlCmd = new SqlCommand(ins, SqlConn); SqlCmd.ExecuteNonQuery(); //3关闭sql数据库 SqlConn.Close(); } 四3 https://www.doczj.com/doc/5c12328050.html,存储过程应用 <一>存储过程 sql数据库中,把一些要连续执行的SQL命令做成程序,即为存储过程 <二>应用举例: 例1.查询--存储过程查询 步骤1:SQL查询器--创建、执行存储过程: 1.SQL创建查询存储过程 先在SqlServer查询分析器上创建一个存储过程,完成查询功能create proc selnum ( @tname nvarchar(10) ) as select * from usename where 账号=@num 2、执行此存储过程 exec selname '张三
");