1.     在CallBack之后保持滚动条的位置:

在Asp.Net1.1中,CallBack之后保持滚动条的位置是一件非常痛苦的事情,特别是页中有一个Grid并且想要编辑特定的行。为了不停留在想要得行,页面会重新加载并且必须在顶部向下滚动。在ASP2.0中,只需要简单的在页面的属性中加入MaintainScrollPostionOnPostBack属性即可
<%@ Page Language="C#"
MaintainScrollPositionOnPostback="true" AutoEventWireup="true"
CodeFile="" Inherits=""%>

2.      匿名委托实现自定义排序

public void SortByCommentCount(List<Article>
articleList, bool ascending)
{
     articleList.Sort(delegate(Article
a, Article b)
     {
        return
(a.CommentCount - b.CommentCount) * (ascending ? 1 : -1);
     });
}

3.     Readonly是运行时常量,Const是编译时常量;前者灵活,后者高效;前者可以用于任何类型,后者只能用于数字和字符串

4.     获得客户端计算机名称
System.Net.Dns.GetHostEntry(Request.UserHostName).HostName;

5.     常用集合:
CollectionsUtil 创建忽略字符串大小写的集合。
HybridDictionary 在集合较小时,使用 ListDictionary 来实现 IDictionary,然后当集合变大时,切换到 Hashtable。
ListDictionary 使用单链接列表实现 IDictionary。建议用于通常包含 10 个或 10 个以下项的集合。
NameObjectCollectionBase 为关联的 String 键和 Object 值的集合(可通过键或索引来访问它)提供 abstract 基类。
NameObjectCollectionBase.KeysCollection 表示集合的 String 键的集合。
NameValueCollection 表示可通过键或索引访问的关联 String 键和 String 值的集合。
OrderedDictionary 表示根据键/索引排序的键/值对的集合。
StringCollection 表示字符串集合。
StringDictionary 将键和值强类型化为字符串而不是对象来实现哈希表。

6.         ListDictionary、Hashtable、HybridDictionary

小数据量: ListDictionary优于Hashtable,10个或10个以下
大数据量: Hashtable优于ListDictionary,10个以上为大
不确定数据量:HybridDictionary,能化的决定你的数据该用ListDictionary存储还是Hashtable存储
以上三个,都属hashtable,那Dictionary与他们有什么不同呢?
Dictionary<>:单线程程序中推荐使用,有泛型优势, 且读取速度较快, 容量利用更充分,有按插入顺序排列数据的特性 (注: 但当调用 Remove() 删除过节点后顺序被打乱), 因此在需要体现顺序的情境中使用 Dictionary 能获得一定方便
Hashtable:默认的 Hashtable 允许单线程写入,
多线程读取, 对 Hashtable 进一步调用 Synchronized() 方法可以获得完全线程安全的类型. 而 Dictionary 非线程安全, 必须人为使用 lock 语句进行保护, 效率大减

7.     volatile 修饰符通常用于由多个线程访问而不使用 lock 语句

8.     implicit 关键字用于声明隐式的用户定义类型转换运算符,如A+B

9.     as 运算符类似于强制转换操作;但是,如果转换不可行,as 会返回
null 而不是引发异常。注意,as 运算符只执行引用转换和装箱转换。as 运算符无法执行其他转换,如用户定义的转换,这类转换应使用 cast 表达式来执行。

10.     控件之间传值Item只是HttpContext的一个属性。   HttpContext.Item
也就是说这个属性是针对一次请求而言的,每个用户每次发出的请求都会建立一个HttpContext的实例,所以不存在什么用户共享的问题。  
一般,Item只是用于控件开发的时候存储一些共有的值,在下一次请求到来的时候item中的值又会重新建立的.

11.      以下对象是按引用传递:
Hashtable[包括从session里面取出来之后不用再塞回去]
SqlDataReader
StringBuilder
Dictionary<T, T>

12.     NameValueCollection用法
NameValueCollection myCol = new NameValueCollection();
      myCol.Add( "red", "rojo" );
      myCol.Add( "green", "verde"
);
      myCol.Add( "blue", "azul" );
      myCol.Add( "red", "rouge" );
      myCol.Add( "red", "bbb");
print: red        rojo,rouge,bbb
green      verde
blue       azul

13.     HttpCookie注意事项
cookie.Values.Add 如果key存在,则在该key之上累加
如Add前是010,如果继续对该键值Add 则变成010,010
cookie.Values[key] 该key不存在也可以添加,推荐

14.     File.Exists(fileName);    文件是否存在
Directory.Exists(folderName);   目录(文件夹)是否存在

15.     绑定DropDownList绑定之后设置默认值
ddlBranch.Items.FindByText("总公司").Selected =
true;

16.     绑定到简单属性:<%#UserName%>
绑定到集合:<asp:ListBox id="ListBox1"
datasource='<%# myArray%>' runat="server">
绑定到表达式:<%#(class1.property1.ToString() +
"," + class1.property2.ToString())%>
绑定到方法返回值:<%# GetSafestring(str) %>
绑定到Hashtable:<%#
((DictionaryEntry)Container.DataItem).Key%>
绑定到ArrayList:<%#Container.DataItem %>

17.      ASP.NET服务器控件

Name用this.UniqueID.ToString()获得
ID用this.ClientID.ToString()获得

18.     ASP.NET 执行父控件的方法
Page p = this.Parent.Page;
Type pageType = p.GetType();
MethodInfo mi = pageType.GetMethod("Loading");
string sqlwhere = GetWhere(hsr);
mi.Invoke(p, new object[] { sqlwhere });

19.     服务器端FileUpload上传控件如何禁止手动输入

<asp:FileUpload ID="FileUpload1" runat="server"
Height="22px" Width="412px"
onkeydown="event.returnValue=false;" onpaste="return false"
/>

20.      数据连接关闭问题

1.DataReader的关闭:if   not  
dr.isclosed   then   dr.closed()   ,如果不关闭dr,直接关闭cn,那么dr自动关闭.
2.DataSet不存在关闭与否的问题
3.DataTable存在关闭与否的问题,而.net缺省设为,当使用dt.fill(ds)时,它自动打开,填充完后自动关闭

21.     巧妙截取日期dateString.Split(' ')[0]

22.     不要用   +   来连接两个   路径字符串
用Path.Combine( "字符串1
", "字符串2 ")
比如  
Path.Combine(@ "C:\AAA\BBB ", "CCC
")         //  
C:\AAA\BBB\CCC       --自动补上一个斜杠
Path.Combine(@ "C:\AAA\BBB\ ",@ "\CCC ")   //相同结果,自动去掉一个斜杆
Path.Combine(@ "C:\AAA\BBB ",@ "..\CCC ")  
//C:\AAA\CCC

  1. Access数据库中多参数

string sql = "update tb_type
set typename=@typename,describe2=@describe2
where id=@id";
           OleDbParameter[]
parameters = {
                 

                   
new OleDbParameter("@typename", OleDbType.VarChar,50),
                   
new OleDbParameter("@describe2", OleDbType.VarChar,50),
                   
new OleDbParameter("@id", OleDbType.Integer,4)};

parameters[0].Value = model.typename;
          
parameters[1].Value = model.describe2;
          
parameters[2].Value = model.id;

在access中居然要求顺序依次对应。

-----------------------------------------

技巧C#的更多相关文章

  1. 探究javascript对象和数组的异同,及函数变量缓存技巧

    javascript中最经典也最受非议的一句话就是:javascript中一切皆是对象.这篇重点要提到的,就是任何jser都不陌生的Object和Array. 有段时间曾经很诧异,到底两种数据类型用来 ...

  2. 前端极易被误导的css选择器权重计算及css内联样式的妙用技巧

    记得大学时候,专业课的网页设计书籍里面讲过css选择器权重的计算:id是100,class是10,html标签是5等等,然后全部加起来的和进行比较... 我只想说:真是误人子弟,害人不浅! 最近,在前 ...

  3. 前端网络、JavaScript优化以及开发小技巧

    一.网络优化 YSlow有23条规则,中文可以参考这里.这几十条规则最主要是在做消除或减少不必要的网络延迟,将需要传输的数据压缩至最少. 1)合并压缩CSS.JavaScript.图片,静态资源CDN ...

  4. 工欲善其事,必先利其器 之 VS2013全攻略(安装,技巧,快捷键,插件)!

    如有需要WPF工具的朋友可以移步 工欲善其事,必先利其器 之 WPF篇: 随着开发轨迹来看高效WPF开发的工具和技巧 之前一篇<c++的性能, c#的产能?!鱼和熊掌可以兼得,.NET NATI ...

  5. 15个关于Chrome的开发必备小技巧[译]

    谷歌Chrome,是当前最流行且被众多web开发人员使用的浏览器.最快六周就更新发布一次以及伴随着它不断强大的开发组件,使得Chrome成为你必备的开发工具.例如,在线编辑CSS,console以及d ...

  6. Git小技巧 - 指令别名及使用Beyond Compare作为差异比较工具

    前言 本文主要写给使用命令行来操作Git的用户,用于提高Git使用的效率.至于使用命令还是GUI(Tortoise Git或VS的Git插件)就不在此讨论了,大家根据自己的的喜好选择就好.我个人是比较 ...

  7. 【工具使用】mac电脑使用技巧

    本文地址 分享提纲: 1.  mac命令行和finder的交互 2. 一些mac的插件 3. 一些开发的配置 1.mac命令行和findder交互           1)命令行中打开当前文件夹: o ...

  8. Function.prototype.toString 的使用技巧

    Function.prototype.toString这个原型方法可以帮助你获得函数的源代码, 比如: function hello ( msg ){ console.log("hello& ...

  9. SAP CRM 性能小技巧

    导言 本页面打算收集SAP CRM实施中可以用于避免性能问题的注意事项,重要的事项会由图标标识. 如果你有其他的技巧想要说出来,别犹豫! 性能注意事项 通用 缓存读取类访问,特别是在性能关键的地方,比 ...

  10. 分享两个BPM配置小技巧

    1.小技巧 流程图修改后发布的话版本号会+1,修改次数多了之后可能会导致版本号很高,这个时候可以将流程导出,然后删除对应的流程包再导入,发布数据模型和流程图之后,版本清零 2.小技巧 有的同事入职后使 ...

随机推荐

  1. [Angular] AfterContentChecked && AfterViewChecked

    AfterContentChecked & AfterViewChecked are called after 'OnChanges' lifecycle. And each time 'ng ...

  2. [Algorithms] Build a Binary Tree in JavaScript and Several Traversal Algorithms

    A binary tree is a tree where each node may only have up to two children. These children are stored ...

  3. Android 8.0新特性-取消大部分静态注册广播

    今天楼主在写一个广播的demo,功能非常的简单,就是一个应用发送一个自定义的广播,同时在这个应用里面定义了一个广播接受者,并且在AndroidManifest文件中进行静态的注册.Demo看上去非常的 ...

  4. 启动ActiveMQ时报端口被占用异常

    配置好ActiveMQ后,前几次都启动成功.有一天启动时发现启动不成功,查看报错日志发现出现如下提示: Failed to start Apache ActiveMQ (localhost, ID:* ...

  5. sql查询备份或还原等操作的大概完成时间

    查询出来的还需完成时间还算比较准确 --查询备份或还原等操作的大概完成时间 select command ,percent_complete ,running_time))+' hour, ' ))+ ...

  6. 09-hibernate单表操作(1)

    1,单一主键 2,基本类型 3,对象类型 4,组件属性 5,单表操作 单一主键 常用生成策略: assigned 有程序员生成(手工) native 由数据库底层,如果是mysql是increment ...

  7. Hibernate配置C3P0连接池

    引入C3PO包 在hibernate.cfg.xml文件中配置 <!-- 数据库连接池的使用 --> <!-- 选择使用C3P0连接池 --> <property nam ...

  8. laravel的表单验证(下面有些信息未验证,转的)

    后台写法: 1.1类的方法 $rules = [ 'email'=>'required|between:4,20', 'password'=>'required|between:6,20' ...

  9. unity, read text file

    using System.IO; //test read txt        //Resources.Load(...) loads an asset stored at path in a Res ...

  10. JSP应用开发 -------- 电纸书(未完待续)

    http://www.educity.cn/jiaocheng/j9415.html JSP程序员常用的技术   第1章 JSP及其相关技术导航 [本章专家知识导学] JSP是一种编程语言,也是一种动 ...