asp笔记及其常见错误分析.doc_第1页
asp笔记及其常见错误分析.doc_第2页
asp笔记及其常见错误分析.doc_第3页
asp笔记及其常见错误分析.doc_第4页
asp笔记及其常见错误分析.doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2500元电脑配置单 组装电脑 石材背景墙8.41UpdatePanel控件由于UpdatePanel控件的引入,postback被分为两种,asynchronous postback和normal postback,asynchronous postback引起UpdatePanel的更新,normal postback引发整个页面的更新。使用ScriptManager的IsInAsyncPostBack属性可以判断回传的类型。Triggers有两种AsyncPostBackTrigger,PostBackTrigger。AsyncPostBackTrigger来指定某个控件的某个事件引发异步回传(asynchronous postback),即部分更新。属性有ControlID和EventName。分别用来指定控件ID和控件事件,若没有明确指定EventName的值,则自动采用控件的默认值,比如button就是click。把ContorlID设为UpdatePanel外部控件的ID,可以使外部控件控制UpdatePanel的更新。PostBackTrigger来指定UpdatePanel内的某个控件引发整个页面的更新(normal postback)。 UpdateMode有两个值:Always,Conditional。总是更新,有条件更新。确定当asynchronous postbacks发生时,是否总是更新。若页面中只有一个UpdatePanel控件,这个值好像没有什么意义。但是当页面中存在多个UpdatePanel,或者UpdatePanel中包含UpdatePanel的复杂情况时,这个值的设定就可以使各个UpdatePanel在各种合适时机更新。ChilderAsTriggersbool值,默认是true。若设为false,则UpdatePanel的子控件引发异步回传(asynchronous postback),但是不更新当前UpdatePanel(在多个UpdatePanel的页面中发现的)。这里比较难于理解,甚至我理解的是错误的。请高手指点。该属性只在UpdateMode=Conditional条件下有意义。右UpdateMode为Always,ChilderAsTriggers=false就则引发异常。2.数据库的连接(1)数据的增加using (SqlConnection conn = new SqlConnection(Data Source=WIN-7UNU1HLJ5GI;Initial Catalog=MyTest;User ID=sa;Password=sun123456) conn.Open( ); using (SqlCommand cmd = conn.CreateCommand() /CommandText为要执行的SQl语句 cmd.CommandText = insert into T_Students(Name,Age) values(lixi,17); cmd.ExecuteNonQuery(); /执行 MessageBox.Show(执行完成!); (2)数据的查询using (SqlConnection conn = new SqlConnection(Data Source=WIN-7UNU1HLJ5GI;Initial Catalog=MyTest;User ID=sa;Password=sun123456) conn.Open();using (SqlCommand cmd = conn.CreateCommand() / cmd.CommandText = select count(*) from T_Students where Age10; /int i=(int) cmd.ExecuteScalar(); /MessageBox.Show(i + 条数据); (3)查询自动生成的Idusing (SqlConnection conn = new SqlConnection(Data Source=WIN-7UNU1HLJ5GI;Initial Catalog=MyTest;User ID=sa;Password=sun123456) conn.Open();using (SqlCommand cmd = conn.CreateCommand() cmd.CommandText = insert into T_Students(Name,Age) output inserted.Id values(abc,16); long i = (long)cmd.ExecuteScalar(); MessageBox.Show(i.ToString();3.数据库查询自动生成的Id号 insert into T_Students(Name,Age)values(abc,16)insert into T_Students(Name,Age) output inserted.Id values(abc,16)4.SQl sever和C# .net类型的区别SQl severC# .net类型intintbigintlongnvarcharstringbit(0,1)bool8.51.连接数据库实现查询 using (SqlConnection conn = new SqlConnection(Data Source=WIN-7UNU1HLJ5GI;Initial Catalog=MyTest;User ID=sa;Password=sun123456) conn.Open(); using (SqlCommand cmd = conn.CreateCommand() /cmd.CommandText = select age from T_Students where Name+txtname.Text+; cmd.CommandText = select age from T_Students where Name=Name; /cmd.Parameters.AddWithValue(Name, txtname.Text); /参数不能用来替换表名、字段名、select之类的关键字等 cmd.Parameters.Add(new SqlParameter(Name,txtname.Text); using (SqlDataReader reader = cmd.ExecuteReader() while (reader.Read() /GetInt32 获得是int类型 /GetInt64 获得是long类型 int age = reader.GetInt32(0); MessageBox.Show(age.ToString(); 2.DataSet的使用 using (SqlConnection conn = new SqlConnection(Data Source=WIN-7UNU1HLJ5GI;Initial Catalog=MyTest;User ID=sa;Password=sun123456) conn.Open(); using(SqlCommand cmd=conn.CreateCommand() cmd.CommandText = select * from T_Students where Age123; cmd.Parameters.Add(new SqlParameter(123,18); / SqlDataAdapter是一个帮我们把SqlCommand查询结果填充到DataSet中的类 / SqlDataAdapter adapter=new SqlDataAdapter(cmd); /DataSet相当于本地的一个复杂集合(list) DataSet dataset=new DataSet(); adapter.Fill(dataset);/把SqlConmmand查询结果填充到DataSet DataTable table =dataset.Tables0; DataRowCollection rows = table.Rows; for (int i = 0; i rows.Count; i+) DataRow row = rowsi; int age=(int)rowAge; string name=(string)rowName; MessageBox.Show(name+,+age); 3.引用配置文件连接数据库(WPF)(1)配置文件 (2)与数据库的连接 string connStr = System.Configuration.ConfigurationManager.ConnectionStringsdb3.ConnectionString;步骤:a.在项目根目录下添加一个“应用程序配置文件”,名为APP.Configb. APP.Config加节点,给add起一个namec.项目添加对System.Configuration的引用(理解为添加开发包)4.使用sqlhelper连接数据库(WPF)(1)写一个sqlhelper的类class SqlHelper private static string connStr = ConfigurationManager.ConnectionStringsdbc.ConnectionString; /封装方法的原则:把不变的放到方法里,把变化的放到参数中 public static int ExecuteNonQuery(string sql) using (SqlConnection conn = new SqlConnection(connStr) conn.Open(); using (SqlCommand cmd = conn.CreateCommand() cmd.CommandText = sql; return cmd.ExecuteNonQuery(); public static object ExecuteScalar(string sql) using (SqlConnection conn = new SqlConnection(connStr) conn.Open(); using (SqlCommand cmd = conn.CreateCommand() cmd.CommandText = sql; return cmd.ExecuteScalar(); (2)使用这个类SqlHelper.ExecuteNonQuery(insert into T_Students(Name,Age) values(a,33); MessageBox.Show(执行完成);8.61.C#语言的输入输出语言(1)write与writeline Write方法不能没有输出数据项,而writeline方法可以没有输出数据项 Write方法输出制定数据项后不会换行,而writeline方法会自动换行(2)read与readlineRead,单个字符输入方法,实现从键盘上读入单个字符数据其完整的调入方式为 : System.Console.Read();强制转换后赋值给相应的字段数据对象 char myChar=(char)Console.Read();readline,字符串输入方法System.Console.Readline();转换数值类型方式用Parse方法.Parse(数字字符串)Int myInt=int.Parse(Console.ReadLine)2.用Jmail给163邮箱发送电子邮件(1)引用Jmail新建文件夹bin,引用jmail.dll(2)在button按钮下输入Message Jmail = new Message(); DateTime t = DateTime.Now; String Subject = 标题; String body = 邮件内容,内容支持Html代码; String FromEmail = 13871229278163.com;/你的email String ToEmail = 13871229278163.com;/对方的email /Silent属性:如果设置为true,JMail不会抛出例外错误. JMail. Send( () 会根据操作结果返回true或false Jmail.Silent = true; /Jmail创建的日志,前提loging属性设置为true Jmail.Logging = true; /字符集,缺省为US-ASCII /Jmail.Charset=GB2312; /信件的contentype. 缺省是text/plain) : 字符串如果你以HTML格式发送邮件, 改为text/html即可。 Jmail.ContentType = text/html; /添加收件人 Jmail.AddRecipient(ToEmail, null, null); Jmail.From = FromEmail; /发件人邮件用户名 Jmail.MailServerUserName = FromEmail; /发件人邮件密码 Jmail.MailServerPassWord = sun1994;/FromEmail邮箱的登陆密码 /设置邮件标题 Jmail.Subject = Subject; /邮件添加附件,(多附件的话,可以再加一条Jmail.AddAttachment( c:/test.jpg,true,null);)就可以搞定了。注:加了附件,讲把上面的Jmail.ContentType=text/html;删掉。否则会在邮件里出现乱码。 /Jmail.AddAttachment( c:/txm.gif,true,null); /邮件内容 Jmail.Body = body; /Jmail发送的方法 Jmail.Send(, false);/邮件服务器 Jmail.Close();8.71.熟悉SqlHelper.cs语句private static string connStr = ConfigurationManager.ConnectionStringsdbc.ConnectionString; public static int ExecuteNonQuery(string sql, params SqlParameter parameters) using (SqlConnection conn = new SqlConnection(connStr) conn.Open(); using (SqlCommand cmd = conn.CreateCommand() cmd.CommandText = sql; cmd.Parameters.AddRange(parameters); return cmd.ExecuteNonQuery(); private static object ExecuteScalar(string sql, params SqlParameter parameters) using (SqlConnection conn = new SqlConnection(connStr) conn.Open(); using (SqlCommand cmd = conn.CreateCommand() cmd.CommandText = sql; cmd.Parameters.AddRange(parameters); return cmd.ExecuteScalar(); public static DataTable ExecuteDataTable(string sql, params SqlParameter parameters) using (SqlConnection conn = new SqlConnection(connStr) conn.Open(); using (SqlCommand cmd = conn.CreateCommand() cmd.CommandText = sql; cmd.Parameters.AddRange(parameters); SqlDataAdapter adapter = new SqlDataAdapter(cmd); DataSet dataset = new DataSet(); adapter.Fill(dataset); return dataset.Tables0; 8.81.利用SqlHelper.cs实现登录注册(1)登录(输入三次密码则自动锁定) DataTable table = SqlHelper.ExecuteDataTable(select * from T_User where Username=Username, new SqlParameter(Username, username.Text); if (table.Rows.Count 1) throw new Exception(用户名重复,请重新输入); DataRow row = table.Rows0; string dbPassword = (string)rowPassword; long id = (long)rowId; int errortimes = (int)rowErrortimes; if (errortimes = 3) MessageBox.Show(输入次数过多,用户已经锁定); return; if (dbPassword != pwd.Password) SqlHelper.ExecuteNonQuery(Update T_User Set ErrorTimes=ErrorTimes+1 where Id=Id, new SqlParameter(Id, id); MessageBox.Show(用户名或密码错误);(2)注册 SqlHelper.ExecuteNonQuery(insert into T_User(Username,Password) values(name,pwd), new SqlParameter(name, username.Text), new SqlParameter(pwd, pwd.Password);2.web 窗体中弹出的提示框(1)第一种 Response.Write(alert(第一种弹出框);); Response.Write(alert(删除成功!); ClientScript.RegisterStartupScript(this.GetType(),”,” alert(登陆成功);location.href=;)(2)第二种 06. Page.RegisterStartupScript(, window.alert(第二种弹出框);); (3)第三种 ClientScriptManager scriptManager = (Page)System.Web.HttpContext.Current.Handler).ClientScript; scriptManager.RegisterStartupScript(typeof(string), , alert(第三种弹出框);, true); (4)第四种 Page.ClientScript.RegisterStartupScript(Page.GetType(), message, alert(第四种弹出框);); (5)对于页面完成一个操作后,弹出一个对话框提示是否“操作成功”后跳转到某一个页面Response.Write(alert(成功);window.location.href =); 8.121. CSS 去掉点li 的点 使得LI前面的点不在显示 方法一: 百度 雅虎 新浪 谷歌 方法二:li list-style-type:none; 百度 雅虎 新浪 谷歌2. ScriptManager和UpdatePanel控件联合局部刷新 ScriptManager和UpdatePanel控件联合使用可以实现页面异步局部更新的效果。其中的UpdatePanel就是设置页面中异 步局部更新区域,它必须依赖于ScriptManager存在,因为ScriptManger控件提供了客户端脚本生成与管理UpdatePanel的功 能。几个重要的属性: (1)ScriptManager控件的EnablePartialRendering属性:true-实现页面的异步局部更新;false-实现全页面的刷新。 (2)UpdatePanel控件的RenderMode属性:InLine-UpdatePanel控件被解析成HTML的标记;Block-UpdatePanel控件被解析成HTML控件的。 (3)UpdatePanel控件的UpdateMode属性:Always-UpdatePanel页面上任何一处发生的回发操作都会产生页局部更新;Conditional-只在特定的情况下才产页面的回发,如执行UpdatePanel控件的update()方法或在指定的触发器的操作下。 (4)UpdatePanel控件的ChildAsTrigger属性:指示UpdatePanel内部控件引起的回发是否产生当前UpdatePanel控件的局部更新。如果UpdateMode设为Always的话,那ChildAsTrigger局性必须设为True,否则运行出错8.131. javascript HTML 鼠标放上button时,显示成小手的形状 加个样式style=cursor:pointer2. ScriptManager和UpdatePanel控件联合局部刷新值描述button定义可点击按钮(多数情况下,用于通过 JavaScript 启动脚本)。checkbox定义复选框。file定义输入字段和 浏览按钮,供文件上传。hidden定义隐藏的输入字段。image定义图像形式的提交按钮。password定义密码字段。该字段中的字符被掩码。radio定义单选按钮。reset定义重置按钮。重置按钮会清除表单中的所有数据。submit定义提交按钮。提交按钮会把表单数据发送到服务器。text定义单行的输入字段,用户可在其中输入文本。默认宽度为 20 个字符。(1)Text 定义用户可输入文本的单行输入字段。Email: Pin: (2)Button 定义可点击的按钮,但没有任何行为。button 类型常用于在用户点击按钮时启动 JavaScript 程序。(3)Checkbox 定义复选框。复选框允许用户在一定数目的选择中选取一个或多个选项。 I have a bike I have a car(4)File 用于文件上传。(5)Hidden 定义隐藏字段。隐藏字段对于用户是不可见的。隐藏字段通常会存储一个默认值,它们的值也可以由 JavaScript 进行修改。(6)Image 定义图像形式的提交按钮。必须把 src 属性 和 alt 属性 与 结合使用。(7)Password 定义密码字段。密码字段中的字符会被掩码(显示为星号或原点)。(8)Radio 定义单选按钮。单选按钮允许用户选取给定数目的选

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论