给自己的技术小结

来源:互联网 发布:三维设计软件排名 编辑:程序博客网 时间:2024/05/15 08:54

// check incoming parameters for null or blank string,判断输入字符串是否为空
if ((inputString != null) && (inputString != String.Empty)) {
    inputString = inputString.Trim();
//强制输入字符串的长度maxLength
//chop the string incase the client-side max length
//fields are bypassed to prevent buffer over-runs
  if (inputString.Length > maxLength)
  inputString = inputString.Substring(0, maxLength)
//从网页上获取数值,强制限定字符数
// Fetch the key field from the query stirng
   string itemId = WebComponents.CleanString.InputText(Request["itemId"], 50);
//判断一个实例信息的是否为空,可以看出类也可判断
if(itemInfo != null){
lblDescription.Text = itemInfo.ProductDesc;
lblName.Text = itemInfo.Name;
lblProductName.Text = itemInfo.ProductName;
lblPrice.Text = itemInfo.Price.ToString("c");

//关于网页第一次加载和之后的情况
protected void Page_Load(Object sender, EventArgs e)
{
 // 网页每次加载时,执行的一些操作
 if (!IsPostBack)
 {
  // 网页第一次加载时执行的操作
 }
 else
 {
  // 回送时执行的操作
 }
 // 网页每次加载时执行的操作
}

Page命令中的属性之一是trace,其值可能是true或false,下面是一个典型的Page命令,其中的trace属性的值是true:

<%@ Page language=”c#” trace=”true” %> 
 
  如果trace属性的值设置为true,由ASPX文件生成的Web页就会显示出来,除了网页本身外,关于该页的大量其他信息也会显示出来。这些信息以下面小节的形式显示在一张表格中:

存储过程的作用
9、使用存储过程

  微软公司的SQL Server和其他现代关系数据库都使用SQL命令定义和处理查询。一个SQL语句或一系列SQL语句提交给SQL Server,SQL Server会对命令进行解析,然后创建一个查询计划并对它进行优化,然后执行该查询计划,这都需要大量的时间。

  存储过程是一系列被查询处理器预解析和优化的SQL命令,这些命令会被存储起来,可以得到快速地执行。存储过程也被称作sprocs,它可以接收输入参数,使一个单一的存储过程能够处理较大范围的特定的查询。

  因为sprocs是预先被解析的,对于复杂的查询更显得重要,其查询计划是预先优化的,因此调用查询过程比执行相同功能的SQL语句速度要快得多。

 修改
 修改一个工程中所有文件中出现的一个名字的一个好方法是,在Visual Studio.NET菜单中依次选择“编辑”->“发现和替换”->“替换”命令。


运用javascript的例子
catch(Exception) //捕获相应错误
 {
  Response.Write("<script language=/"javascript/">"+"/n");
  Response.Write("alert(/"不能重复登录,或考号、姓名、密码是否有误!/")"+"/n</script>");

弹出式菜单设计
<a href="javascript:onclick=WinOpen()">aaa</a>
<script language="Javascript">
function WinOpen()
{
var url='aaa.aspx';
   window.open(url,'','scrollbars=yes,top=0,left=0,resizable=no,status=no,toolbar=no,menubar=no,location=no,width=430,height=600');
}

判断字符串的两种理解:(String.Empty 是判断字符串的
Request.QueryString返回的是对象,需要用null)
idString = Request.QueryString[KEY_ID];
if(idString==null||idString.Length==0)
{
  //error
}


repeater绑定15条数据,如果每5条过后输出一个<br>
前台:
<asp:repeater id="**" Runat="server">
<ItemTemplate>
 <%# AddEnter(DataBinder.Eval(Container,"****").ToString())%><br>
</ItemTemplate>       
</asp:repeater>
后台:
public string AddEnter(string Str)
{
  if ((**.Items.Count%5)==0)
    return Str + "<br>";
  else
    return Str;
}

判断输入内容是否全为数字
public static bool IsNum(String str)
{
    for(int i=0;i<str.Length;i++)
    {
        if(!Char.IsNumber(str,i))
        return false;
    }
    return true;
}

提高ASP.NET效率的几个方面
1、避免不必要的执行操作
2、关闭不必要的Session状态
3、注意使用Server Control 不必要时可以不使用Server Control
4、不必要时可以关闭ViewState
5、不要用Exception控制程序流程
try {
 result = 100 / num;
}
 catch (Exception e) {
 result = 0;
 }
6、只读数据访问不要使用DataSet 使用SqlDataReader代替DataSet
7、关闭ASP.NET的Debug模式  web.config里的debug要为false,并且dll文件编译是要生成为release版本的
8、使用ASP.NET Output Cache缓冲数据
9、对大量使用的很少更新的数据进行数据缓冲
9、尽量使用存储过程数据访问
10、页面能静态的就不要动态
11、能用JS实现的效果都用JS实现,能在客户端实现的就减少回发
12、转向用Server.Transfer,不用Response.Direct
13、ADO.NET对象在一次使用过程中不要重复打开创建,尽量使用一个Connection、一个Command、一个DataReader,并且记得不再调用数据库数据时马上关闭、释放
14、数据集采用要多少给多少,杜绝不分字段不分页
15、能不用DataSet/DataGrid就不要使用
16、运行在win2003企业版上
==========================================
希望进来的朋友谈谈你在提高效率方面的感想,并希望继续补充
我个人认为系统的效率是必须要时时考虑的,不能忘记。

1的原因就不用提了吧
2减少消耗内存
3减少server control解释成html的时间
4减少传递时增加的隐藏数据,同时也减小传输文件
5为什么非让它撞南墙再回头
6SqlDataReader效率高于DataSet
7正是版本不应用Debug
8Output Cache缓冲的页听说比静态也还快(直接从内存输出连文件都不用读)
9同样的数据,预先拿出来,放到内存总比在数据库或文件中快吧
9存储过程是数据库预先优化和编译的
10动态的需要先解释啊
11办一件事,故意让你来回跑上几趟,你乐意吗?
12Response.Direct需要先回到客户那里报个到
13本来你手中有个笔,可是写字时你却先放下,再换一个
14要枝给树
15我认为DataGrid过于花哨,DataSet用来缓存数据很好,经常要换的话就浪费了
16win2003企业版是集成.NET的操作系统

七层结构
1。业务外观
2。业务规则
3。数据访问
4。系统框架
5。Web服务
6。Web界面
7。Windows界面
而从整体上来看,WebService可以叫做服务层,应用客户端可以叫做应用层,数据库叫数据层。因此,我觉得分层及分层的叫法应该根据需要,以不同的立足点来进行,不要笼统处理,这样会人为的增加通信成本。