当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > Asp.Net细节性问题精萃

ASP.NET
FreeTextBox(版本3.1.6)在ASP.Net 2.0中使用方法
.NET 常用功能和代码小结
在 .NET Framework 2.0 中未处理的异常导致基于 ASP.NET 的应用程序意外退出
asp.net IList查询数据后格式化数据再绑定控件
asp.net sql存储过程
asp.net 简单实现禁用或启用页面中的某一类型的控件
asp.net(c#)获取内容第一张图片地址的函数
The remote procedure call failed and did not execute的解决办法
ASP.NET 在线文件管理
asp.net 读取并修改config文件实现代码
ASP.NET Cookie 操作实现
asp.net Silverlight中的模式窗体
Silverlight中动态获取Web Service地址
asp.net Silverlight应用程序中获取载体aspx页面参数
asp.net 水晶报表隔行换色实现方法
asp.net 获取Gridview隐藏列的值
手动把asp.net的类生成dll文件的方法
asp.net 使用ObjectDataSource控件在ASP.NET中实现Ajax真分页
动态指定任意类型的ObjectDataSource对象的查询参数
asp.net Md5的用法小结

ASP.NET 中的 Asp.Net细节性问题精萃


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 74 ::
收藏到网摘: n/a

1.<%=...%>与<%#...%>的区别:
答:<%=...%>是在程序执行时调用,<%#...%>是在DataBind()方法之后被调用

2.控件接收哪些类型数据?
答:接收Bind的控件,一般有DropDownList,DataList,DataGrid,ListBox这些集合性质的控件,而被捆绑的主要是ArrayList(数组),Hashtable(哈稀表),DataView(数据视图),DataReader这四个,以后我们就可以对号入座,不会出现DataTable被捆绑的错误了:)

3.DataBind,获得的数据,系统会将其默认为String,怎样转化为其它的类型?
DataBinder.Eval(Container.DataItem,"转换的类型","格式")
最后一个"格式"是可选的,一般不用去管他,Container.DataItem是捆绑的数据项,"转换类型"指的是Integer,String,Boolean这一类东西.

4.主要命名空间:
<%@ImportNamespace="System.Data"%>处理数据时用到
<%@ImportNamespace="System.Data.ADO"%>使用ADO.net;时用到
<%@ImportNamespace="System.Data.SQL"%>SQLServer数据库专用
<%@ImportNamespace="System.Data.XML"%>不用看处理XML用到
<%@ImportNamespace="System.IO"%>处理文件时用到
<%@ImportNamespace="System.Web.Util"%>发邮件时大家会用到
<%@ImportNamespace="System.Text"%>文本编码时用到

5.Connections(SQLConection或者ADOConnection)的常用属性和方法:
|ConnectionString取得或设置连结数据库的语句
|ConnectionTimeout取得或设置连结数据库的最长时间,也是就超时时间
|DataBase取得或设置在数据库服务器上要打开的数据库名
|DataSource取得或设置DSN,大家不会陌生吧:)
|Password取得或设置密码
|UserID取得或设置登陆名
|State取得目前联结的状态
|Open()打开联结
|Close()关闭联结
|Clone()克隆一个联结。(呵呵,绵羊可以Connection我也可以)
示例:
SQLConnectionmyConnection=newSQLConnection();
myConnection.DataSource="mySQLServer";
myConnection.Password="";
myConnection.UserID="sa";
myConnection.ConnectionTimeout=30;
myConnection.Open();
myConnection.Database="northwind";
myConnection.IsolationLevel=IsolationLevel.ReadCommitted
6.Command常用的方法和属性
|ActiveConnection取得或设置联结Connections
|CommandText执行的SQL语句或储存过程(StoredProcedure)名
|CommandTimeout执行的最长时间
|CommandTypeCommand操作的类型(StoredProcedure,Text,TableDirect)三种,默认Text
|Parameters操作储存过程时使用
|Execute()执行SQL语句或储存过程
|ExecuteNonQuery()同上,区别在于不返回记录集
|Clone()克隆Command
示例:
stringmySelectQuery="SELECT*FROMCategoriesORDERBYCategoryID";
stringmyConnectString="userid=sa;password=;database=northwind;server=mySQLServer";
SQLCommandmyCommand=newSQLCommand(mySelectQuery);
myCommand.ActiveConnection=newSQLConnection(myConnectString);
myCommand.CommandTimeout=15;
myCommand.CommandType=CommandType.Text;</FONT>


7.打开和关闭数据库两种方法:
1.MyConnection.Open();//打开联结
MyConnection.Close();
2.MyCommand.ActiveConnection.Open();
MyCommand.ActiveConnection.Close()

8.使用DataSet,在数据库中增加、修改、删除一个数据
a.添加数据
DataRowdr=MyDataSet.Tables["UserList"].NewRow();
dr["UserName"]="周讯";
dr["ReMark"]="100";
dr["Comment"]="漂亮MM";
MyDataSet.Tables.Rows.Add(dr);

b.修改数据
MyDataSet.Tables["UserList"].Rows[0]["UserName"]="飞刀大哥";

c.删除数据
MyDataSet.Tables["UserList"],Rows[0].Delete();

d.恢复数据
if(MyDataSet.HasErrors)
{
MyDataSet.RejectChanges();
}

e.探测DataSet是否有改动
if(MyDataSet.HasChanges)
{
//保存代码
}else{
//因为没有变化,所以不用保存,以节省时间
}

f.更新数据库
MyComm.Update(MyDataSet);//更新数据库中所有的表
MyComm.Update(MyDataSet,"UserList");//更新某个表
9.DataGrid实现分页功能
AllowPaging="True"//是指允许分页,这个是最主要的。有了它,我们才能分页。
PageSize="5"//是指定每页显示的记录数,如果不写,就会默认为10条。
PagerStyle-HorizontalAlign="Right"//是指定分面显示的定位,默认是Left

PagerStyle-NextPageText="下一页"//把<>改为上一页和下一页字符串
PagerStyle-PrevPageText="上一页"

PagerStyle-Mode="NumericPages"//把<>改为123数字显示
10.显示一共有多少页,并且报告当前为第几页
当前页是:<fontcolor=red><%=DataGrid1.CurrentPageIndex+1%></font><br>
总页数是:<fontcolor=red><%=DataGrid1.PageCount%></font><br>
11.个性化分页
程序员大本营之"亲密接触ASP.Net(14)"有完整代码

12.要将页面重置为有效的状态
IValidatorval;
foreach(valinValidators)
{
Val.IsValid=true;
}
13.重新执行整个验证序列
IValidatorval;
foreach(valinValidators)
{
Val.Validate();
}
14.禁用客户端验证
<%@PageLanguage="c#"clienttarget=downlevel%>
15.Repeater、DataList和DataGrid控件用途"
这些控件可以简化几种常见的Web应用程序方案,包括报表、购物车、产品列表、查询
结果和导航菜单。Repeater是唯一允许在其模板中存在HTML片段的控件.
16.Server.Execute("another.aspx")和Server.Transfer("another.aspx")区别:
Execute是从当前页面转移到指定页面,并将执行返回到当前页面
Transfer是将执行完全转移到指定页面
17.XML文件中可以自己存有架构,也可以存在于*.xsl文件中,但必须通过xmlns属性在xml文档的根节点中指定该信息,如下所示:
<rootelementxmlns="x-schema:scheduledSchema.xsl">
18.XML文件的读取
FileStreammyfs=newFilestream(Server.MapPath("xmldtagrid.xml"),FileMode.Open,FileAccess.Read);
StreamReadermyreader=newStreamReader(myfs);
DataSetmyds=newDataSet();
myds.ReadXml(myreader);
19.正则表达式控件RegularExpressionValidator
符号含义
^指定检查开始处
$指定检查结束处
[]检查输入的值是否与方括弧中的字符之一相匹配
\W允许输入任何值
\d{}"\d"指定输入的值是一个数字,{}表示已指定数据类型的出现次数
+表明一个或多个元素将被添加到正在检查的表达式
示例:电子邮件格式(具有@号,且以.com/.net/.org/.edu结尾)
validationexpression="^[\w-]+@[\w-]+\.(com|net|org|edu)$"
20.DataGrid控件中数据操作重要语句:
属性:DataKeyField="userid"//设userid为表的主键,无法将该字段的值更新到数据库,最好设表的主键为DataGrid的主键
SqlCommand.Parameters["@userid"].Value=dg.DataKeys[(int)e.Item.ItemIndex];//检索所要更新的行的主键(将当前选定的行的主键值赋给命令的一个参)数
SqlCommand.Parameters["@fname"].Value=((TextBox)e.Item.Cells[2].Controls[0]).Text;//为参数赋予已修改的行值
21.自定义控件:
a.用户控件(ASP创建页面一样)
(I).创建页面,拖入控件,设置属性/方法.<%@ControlLanguage="C#"Debug="True"%>中的@Control指令来定义此页将包含控件代码
(II)保存为*.ascx文件,如a.ascx.
(III).使用:头<%@RegisterTagprefix="MyFirstControl"TagName="MyLbl"Src="a.axcs"%>
//Tagprefix为控件的前缀,像ASP:TextBox中的ASP
//TagName用于指定自定义控件的名称
//Src指定控件文件源
身体:<MyFirstControl:MyLblrunat="Server"id="AllMine"MyText="成功了"/>
b.使用C#创建自定义控件
(I).创建纯代码文件,继承基类Control,并保存为*.cs,如a.cs.
(II).将代码编译生成程序集:csc/t:library/r:System.dll,System.Web.Dlla.cs
//library告诉C#编译器生成程序集
///r:System.dllSystem.Web.Dll告诉C#编译器引用指定的程序集
(III).将生成dll文件放在bin目录中
(IV).使用:<%@RegisterTagPrefix="Mine"Namespace="MyOwnControls"Assembly="a"%>
22.复合控件注意事项:
publicclassMyCompositin:Control,INamingContainer//INamingContainer:如果在页面上有多个此控件实例,则此结口可以给每{}//个实例有唯一标志

this.EnsureChildControls();//表示将复合控件的子控件都呈现到页面上,此方法检查服务器控件是否包含子控件

CreateChildControls
23.Button/LinkButton/ImageButton/HyperLink什么时候用?
1.Button和ImageButton用于将数据传递回服务器.
2.Hyperlink用于在页面之间导航
3.LinkButton用于将数据保存到服务器或访问服务器上的数据
24.跟踪调试
跟踪:
1.页级别跟踪:在页的开头包括如下的页指令<%@PageTrace="True"TraceMode="SortByCategory/SortByTime"%>
自定义消息:
Trace.Write("这里为要显示的字符串");
Trace.Warn("这里为要显示的字符串");//与Trace.Write相同,只是字体为红色
检查是否使用了跟踪
例句:if(Trace.IsEnabled){Trace.Warn("已启用跟踪")}
2.应用程序级别跟踪:在Web.config文件的<System.Web>节中<traceenabled="true"pageOutput="true"/>
25.设置缓存:
1.输出缓存:
I.页面设置:将<%@OutputCacheDuration="120"VaryByParam="none"%>加在需要缓存页的开头
注释:在请求该页的后两分钟之内,输出内容不变
II.编程方式设置:
主要使用类System.Web.HttpCachePolicy类下的方法
(1).Response.Cache.SetExpires(DateTime.Now.AddSeconds(120));//在此方法中必须指定到期时间,如本语//句为两分钟
(2).Response.Cache.SetExpires(DateTime.Now.AddSeconds(120));
Response.Cache.SetSlidingExpiration(true);//"可调到期",主要用于那些开始访问量大,但随后访问//量平衡的情况
功能:第一句设置缓存到期时间,第二行打开slidingexpiration(可调到期).
2.数据缓存:
(1).DataViewmySource;(2).给mySource赋值;
(3).Cache["myCache"]=mySource;(4).mySource=(DataView)Cache["myCache"]
26.部署:直接复制到产品服务器即可复制语句:XCOPY<source_path><destination_path>//XOPY只接受物理路径,不接受虚拟路径