日期:2008年11月25日

30.Rule:

1.       如果A,B都有值,优先取A

2.       如果A有值,B没值,取A

3.       如果A没值,B有值,取B

4.       如果AB都没值,都不取

5.       如果有值交叉的情况,都不取

A   B

1          null

null  1

null  1

1    1

 

//创建RoomPriceList副本
HotelRoomPriceEntity[] hotelArr 
= new HotelRoomPriceEntity[roomPriceList.Count];
roomPriceList.CopyTo( hotelArr );

           
//数据同步副本
            List<HotelRoomPriceEntity> roomPriceListOrigin = new List<HotelRoomPriceEntity>();
            
foreach ( HotelRoomPriceEntity roomPrice in hotelArr ) {
                roomPriceListOrigin.Add( roomPrice );
            }
//RoomPriceList ForEach
roomPriceList.ForEach( delegate( HotelRoomPriceEntity roomPrice ) {
              
//查询与当前RoomID相关的副本中的记录集
                List<HotelRoomPriceEntity> roomPriceListInSegment = roomPriceListOrigin.FindAll( delegate( HotelRoomPriceEntity eachRoomInSegment ) {
                    
return roomPrice.Room == eachRoomInSegment.Room;
                } );

                
if ( null == roomPriceListInSegment ) {
                    
return;
                }
                
//根据A和B的规则,计算总值
                roomPrice.SumValue = CalculateSumValue( roomPriceListInSegment );
            } );

private static Decimal CalculateSumValue ( List<HotelRoomPriceEntity> roomPriceListInSegment ) {
            Decimal result 
= 0.0M;

           
//在“与当前RoomID相关的副本中的记录集”中查询出A有值的记录集
            List<HotelRoomPriceEntity> AList = roomPriceListInSegment.FindAll( delegate( HotelRoomPriceEntity hotelRoom ) {
                
return hotelRoom.A > 0;
            } );

            
//A都值,取A的总和
            if (AList != null && AList.Count == roomPriceListInSegment.Count ) {
                AList.ForEach( 
delegate( HotelRoomPriceEntity room ) {
                    result 
+= room.A;
                } );
            }
            
else { 
            //B都值,取B的总和,否则其他情况
                List<HotelRoomPriceEntity> BList = roomPriceListInSegment.FindAll( delegate( HotelRoomPriceEntity hotelRoom ) {
                    
return hotelRoom.B > 0;
                } );

                
if (BList!= null && BList.Count == roomPriceListInSegment.Count ) {
                    BList.ForEach( 
delegate( HotelRoomPriceEntity room ) {
                        result 
+= room.B;
                    } );
                }
                
else { //其他情况
                    result 
= 0.0M;
                }
            }
            
return result;
        }

29.DbCommand & In

你在DbCommand中使用select查询时,如果遇到sql语句中用到in

记住这样用:(拼接Sql方式)

String sqlSearchHotelNoteList = String.Concat( @"SELECT hotel,startdate,enddate,note
                                             FROM OrderDB.dbo.Cii_Hotel_Des WITH(NOLOCK)
                                             WHERE hotel IN (
" , queryParameters.HotelIdList , @")
                                             AND startdate <= @checkoutdate
                                             AND enddate >= @checkindate
                                             Order by hotel, startdate
" );

不能这样

db.AddInParameter( dbCommand , "@hotelidlist" , DbType.String , queryParameters.HotelIdList );

这样在IDataReader.Reader()

会报错(Convert Varchar not to Int.

日期:2008年10月20日

28.Sql2005: newid()产生随机数
A B
1 1
1 1
2 2
2 2
3 3
3 3
取1,2,3中的某一条:
Select top 1 from

(select top 1 newid() as new_ID,* from table where A=1
union
select top 1 newid() as new_ID,* from table where A=2
union
select top 1 newid() as new_ID,* from table where A=3
)
order by newid()

日期:2008年7月25日

27.原来还可以这样写!

                          <asp:TemplateField>
                                <ItemTemplate>
                                    <asp:HiddenField ID="hdPriceDetail" Value='<%#Eval("Description") %>' runat="server" />
                                    <asp:Label ID="lblDetails" Text='<%#"Details"+Eval("Description") %>' runat="server" />
                                </ItemTemplate>
                            </asp:TemplateField>

 

日期:2008年7月18日

26.如何替换string中的特定字符串或者字符,为另一个字符串或者字符?

Ex:  String SearchCropHotelSql = "Select ****************** r.WD_FGprice ,sdafasferaetefadsfasfsdfsdfdsfas#$#$#$@#fas";

ReplaceEx( SearchCropHotelSql , "r.WD_FGprice" , "r.WD_FGprice3" );

效果等同于:SearchCropHotelSql .Replace("r.WD_FGprice" , "r.WD_FGprice3" );

private static String ReplaceEx ( String original , String pattern , String replacement ) {
            Int32 count , position0 , position1;
            String upperString = original.ToUpper();
            String upperPattern = pattern.ToUpper();
            Int32 inc = ( original.Length / pattern.Length ) * ( replacement.Length - pattern.Length );
            Char[] chars = new Char[original.Length + Math.Max( 0 , inc )];
            count = position0 = position1 = 0;
            while ( ( position1 = upperString.IndexOf( upperPattern , position0 ) ) != -1 ) {
                for ( Int32 i = position0 ; i < position1 ; ++i ) {
                    chars[count++] = original[i];
                }
                for ( Int32 i = 0 ; i < replacement.Length ; ++i ) {
                    chars[count++] = replacement[i];
                }
                position0 = position1 + pattern.Length;
            }
            if ( position0 == 0 ) {
                return original;
            }
            for ( Int32 i = position0 ; i < original.Length ; ++i ) {
                chars[count++] = original[i];
            }

            return new String( chars , 0 , count );
        }

 

日期:2008年7月15日
25.在C#中如何遍历Entity或Class中所有属性或者方法

Asp.net 随记 Part1 (1- 30)public class test 

-------------------------------------以前的积累----------------------------------------------------------------------------------

 

 

 

Asp.net 随记 Part1 (1- 30)用于在兼容的引用类型之间执行转换。例如:
Asp.net 随记 Part1 (1- 30)
Asp.net 随记 Part1 (1- 30)
string s = someObject as string
;
Asp.net 随记 Part1 (1- 30)
as
运算符类似于强制转换,所不同的是,当转换失败时,运算符将产生空,而不是引发异常。更严格地说,这种形式的表达式
Asp.net 随记 Part1 (1- 30)
Asp.net 随记 Part1 (1- 30)expression
as
type
Asp.net 随记 Part1 (1- 30)等效于
Asp.net 随记 Part1 (1- 30)expression
is type ? (type)expression : (type)null

Asp.net 随记 Part1 (1- 30)
Asp.net 随记 Part1 (1- 30)只是 expression 只被计算一次。
Asp.net 随记 Part1 (1- 30)
Asp.net 随记 Part1 (1- 30)注意,
as 运算符只执行引用转换和装箱转换。as 运算符无法执行其他转换,如用户定义的转换,这类转换应使用 cast 表达式来执行。
Asp.net 随记 Part1 (1- 30)
Asp.net 随记 Part1 (1- 30)
using
System;
Asp.net 随记 Part1 (1- 30)
class
Class1

 

  1Asp.net 随记 Part1 (1- 30)1.关于DATASET中rowfilter的使用问题
  2
Asp.net 随记 Part1 (1- 30)在DATASET中,想要使用rowfilter
  3
Asp.net 随记 Part1 (1- 30)
  4Asp.net 随记 Part1 (1- 30)select .OrderID,o.OrderTime,o.OrderAmount,o.OrderNumber,cr.UserName,cr.ContactPhone,cr.DetailAddress from C_CustomerRoute as cr,O_Order as
o
  5Asp.net 随记 Part1 (1- 30)where cr.CustomerRouteID=
o.CustomerRouteID
  6
Asp.net 随记 Part1 (1- 30)上面的SQL语句用来填充DATASET,但想要在ROWFILTER中实现下面的功能
  7
Asp.net 随记 Part1 (1- 30)
  8Asp.net 随记 Part1 (1- 30)and datepart(day,OrderTime)=datepart(day
,getdate())
  9
Asp.net 随记 Part1 (1- 30)
10
Asp.net 随记 Part1 (1- 30)这句已经在查询分析器里运行过,没有错误。要把这句放到ROWFILTER里怎么写呢?
11
Asp.net 随记 Part1 (1- 30)
12
Asp.net 随记 Part1 (1- 30)比如: GetDataTable() {
13Asp.net 随记 Part1 (1- 30)                     DataTable dt1 =
dt.copy();
14Asp.net 随记 Part1 (1- 30)                     foreach(DataRow dr in
dt.rows)
15
Asp.net 随记 Part1 (1- 30)                    {
16Asp.net 随记 Part1 (1- 30)                         //
取出OrderDate的Day并与当前时间的天做比较。相同就把dr放到dt1中
17
Asp.net 随记 Part1 (1- 30)                    }
18Asp.net 随记 Part1 (1- 30)                 return
dt1;
19
Asp.net 随记 Part1 (1- 30)                }
20Asp.net 随记 Part1 (1- 30)rowfilter中不能使用别名 rowfilter = "c.useid = 'ww' "
[错误的]
21
Asp.net 随记 Part1 (1- 30) 
22
Asp.net 随记 Part1 (1- 30)
23
Asp.net 随记 Part1 (1- 30)
24Asp.net 随记 Part1 (1- 30)2
.有关于动态加载隐藏域和动态取得隐藏域的值与页面的下拉框的中的值来进行比较。
25
Asp.net 随记 Part1 (1- 30)第1种:.在页面中事先写好隐藏域。
26Asp.net 随记 Part1 (1- 30)<form>

27Asp.net 随记 Part1 (1- 30)        <asp:HiddenField ID="year" runat="server" />
28Asp.net 随记 Part1 (1- 30)        <asp:HiddenField ID="month" runat="server" />
29Asp.net 随记 Part1 (1- 30)</form>
30Asp.net 随记 Part1 (1- 30)然后在CodeFile文件中的page_load中对其进行动态赋值
31Asp.net 随记 Part1 (1- 30)this.year.Value =
DateTime.Now.Year.ToString();
32Asp.net 随记 Part1 (1- 30)this.month.Value =
DateTime.Now.Month.ToString();
33Asp.net 随记 Part1 (1- 30)最后在到客户端动态取得year,month

34Asp.net 随记 Part1 (1- 30)document.form.year.value
35
Asp.net 随记 Part1 (1- 30)document.form.month.value
36
Asp.net 随记 Part1 (1- 30)
37
Asp.net 随记 Part1 (1- 30)第二种:在codefile文件中page_load中进行动态加载隐藏域
38
Asp.net 随记 Part1 (1- 30)使用literal控件装载隐藏域
39Asp.net 随记 Part1 (1- 30) this.libAddHidden.Text =" <asp:HiddenField ID=\"year\" value=\"2006\" runat=\"server\" />"+

40Asp.net 随记 Part1 (1- 30)                                 "<asp:HiddenField ID=\"month\" value=\"6\" runat=\"server\" />";
41Asp.net 随记 Part1 (1- 30)这时可以发现在客户端在源码中在page_load中加载的asp:HiddenField  没有转变成 input type="hidden"
的形式,
42
Asp.net 随记 Part1 (1- 30)这时如果想取得没有转变的隐藏域的值,可以使用
43Asp.net 随记 Part1 (1- 30)document.getElementById("year"
).value
44Asp.net 随记 Part1 (1- 30)document.getElementById("month"
).value
45
Asp.net 随记 Part1 (1- 30)如果使用以下的取值方式就不对了
46Asp.net 随记 Part1 (1- 30)//
document.form.year.value
47Asp.net 随记 Part1 (1- 30)//
document.form.month.value
48Asp.net 随记 Part1 (1- 30)反则:如果动态加载到literal控件中的是客户端的input type="hidden"
的话,就可以使用任意一种取值方式,即可
49
Asp.net 随记 Part1 (1- 30)
50Asp.net 随记 Part1 (1- 30)3
.JS控制输入
51Asp.net 随记 Part1 (1- 30)<input onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))">
只能输入汉字
52Asp.net 随记 Part1 (1- 30)<input onkeyup="value=value.replace(/[^\uFF00-\uFFFF]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\uFF00-\uFFFF]/g,''))">
只能输入全角
53Asp.net 随记 Part1 (1- 30)<input onkeyup="value=value.replace(/[^\d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))">
只能输入数字
54Asp.net 随记 Part1 (1- 30)<input onkeyup="value=value.replace(/[\W]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))">
只能输入英文和数字
55Asp.net 随记 Part1 (1- 30)<input onkeyup="value=value.replace(/[^\cd-\cd]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\cd-\cd]/g,''))">
什么都不能输入
56Asp.net 随记 Part1 (1- 30)<input onkeyup="value=value.replace(/[^\gb-\gb]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\gb-\gb]/g,''))">
只能输入这几个字母egfdcb
57
Asp.net 随记 Part1 (1- 30)
58Asp.net 随记 Part1 (1- 30)4
.server.Transfer与response.Redirect的作用都是重定向,我认为它与response.Redirect相比有两个优点、一个缺点。
59
Asp.net 随记 Part1 (1- 30)
60
Asp.net 随记 Part1 (1- 30)
61
Asp.net 随记 Part1 (1- 30)优点:
62
Asp.net 随记 Part1 (1- 30)一、它在服务器端直接重定向,不用像response.Redirect一样先与浏览器通信再重定向,效率高。
63
Asp.net 随记 Part1 (1- 30)二、它可以传递上一个页面的提交值。比如:A页面提交值到B页面,B页面Transfer到C页面,C页面同样可以收到A页面提交的值。
64
Asp.net 随记 Part1 (1- 30)
65
Asp.net 随记 Part1 (1- 30)
66
Asp.net 随记 Part1 (1- 30)
67
Asp.net 随记 Part1 (1- 30)
68Asp.net 随记 Part1 (1- 30)缺点:(2006-1-
10修改)
69
Asp.net 随记 Part1 (1- 30)不能刷新页面,比如:A页面提交登录信息到B页面,B页面处理后Transfer再到A,A页面得不到刷新,指定了过期也不行。如果A、B页面不在同一个目录下,我们还会发现更多意想不到的结果,使用相对链接的图片、超链接的指向都改变了,造成这种原因是B页面读取A页面内容却以B页面的身份输出,所以路径改变了。
70
Asp.net 随记 Part1 (1- 30)
71
Asp.net 随记 Part1 (1- 30)说到server.transfer,就不得不说server.execute,这两个东西有点类似。主要的区别在于,server.execute在第二个页面结束执行后,还会返回第一个页面继续处理.
72
Asp.net 随记 Part1 (1- 30)
73
Asp.net 随记 Part1 (1- 30)同时,使用Server.Transfer时应注意一点:目标页面将使用原始页面创建的应答流(就是跳转本身的页面),这导致ASP.NET的机器验证检查(Machine Authentication Check,MAC)认为新页面的ViewState已被篡改。因此,如果要保留原始页面的表单数据和查询字符串集合,必须把目标页面Page指令的EnableViewStateMac属性设置成False。
74
Asp.net 随记 Part1 (1- 30)
75Asp.net 随记 Part1 (1- 30)5
.C#页面中判断绑定上来的值是否为空
76Asp.net 随记 Part1 (1- 30)<asp:TemplateField>

77Asp.net 随记 Part1 (1- 30)   <ItemTemplate>
78Asp.net 随记 Part1 (1- 30)      <%# DataBinder.Eval(Container.DataItem, "IDCardTypeName").ToString().Equals("") ?"其他":DataBinder.Eval(Container.DataItem, "IDCardTypeName")%>
79Asp.net 随记 Part1 (1- 30)    </ItemTemplate>
80Asp.net 随记 Part1 (1- 30)</asp:TemplateField>
81Asp.net 随记 Part1 (1- 30)<asp:BoundField HeaderText="Type" DataField="IDCardTypeName">
82Asp.net 随记 Part1 (1- 30)          <HeaderStyle Font-Bold="False" />
83Asp.net 随记 Part1 (1- 30)</asp:BoundField>
84Asp.net 随记 Part1 (1- 30)
85
Asp.net 随记 Part1 (1- 30)VB.net
86Asp.net 随记 Part1 (1- 30)<input id="txtPW" onBlur="javascript:formatNumberClient(this);" onFocus="javascript:unformatNumberClient(this,'on');" size=12 value='<%# IIF(isdbnull(ctype(DataBinder.Eval(Container.DataItem,"PostWage"),object)),"0.00",format(cdbl(IIF(isdbnull(DataBinder.Eval(Container.DataItem,"PostWage")),0,DataBinder.Eval(Container.DataItem,"PostWage"))),"##,##0.00")) %>' type="text" MaxLength="9" runat="server" NAME="txtPW" style="text-align:right" >

87Asp.net 随记 Part1 (1- 30)
88Asp.net 随记 Part1 (1- 30)
89
Asp.net 随记 Part1 (1- 30)
90Asp.net 随记 Part1 (1- 30)6.引用另一个工程的文件夹里的文件可以用<%=Application["项目工程名Path"]%> /JS/**
.js
91Asp.net 随记 Part1 (1- 30)7
.判断JS传过来的值,并返回不带空格的完整日期
92
Asp.net 随记 Part1 (1- 30)传过来的值有三种形式:
93Asp.net 随记 Part1 (1- 30)1.1900-1-1 00:00:00

94Asp.net 随记 Part1 (1- 30)2.1900-11-1 20:00:00
95Asp.net 随记 Part1 (1- 30)3.1900-12-18 10:00:00以下是判断的代码
96Asp.net 随记 Part1 (1- 30)      if(sIdB.substr(8,1) != '' && (sIdB.substr(9,1) == '0' || sIdB.substr(9,1) == '1' || sIdB.substr(9,1) == '2'))

97Asp.net 随记 Part1 (1- 30)            {
98Asp.net 随记 Part1 (1- 30)                //
返回到前一个窗口的值
99Asp.net 随记 Part1 (1- 30)                eval("window.opener.document.aspnetForm.birth"+j+".value='"+sIdB.substr(0,8)+"'"
);
100
Asp.net 随记 Part1 (1- 30)            }
101Asp.net 随记 Part1 (1- 30)            else if(sIdB.substr(9,1)!='' && (sIdB.substr(10,1) == '0' || sIdB.substr(10,1) == '1' || sIdB.substr(10,1) == '2'))

102Asp.net 随记 Part1 (1- 30)            {
103Asp.net 随记 Part1 (1- 30)                eval("window.opener.document.aspnetForm.birth"+j+".value='"+sIdB.substr(0,9)+"'"
);
104
Asp.net 随记 Part1 (1- 30)            }
105Asp.net 随记 Part1 (1- 30)            else if(sIdB.substr(10,1)!='' && (sIdB.substr(11,1) == '0' || sIdB.substr(11,1) == '1' || sIdB.substr(11,1) == '2'))

106Asp.net 随记 Part1 (1- 30)            {
107Asp.net 随记 Part1 (1- 30)                eval("window.opener.document.aspnetForm.birth"+j+".value='"+sIdB.substr(0,10)+"'"
);
108
Asp.net 随记 Part1 (1- 30)            }
109Asp.net 随记 Part1 (1- 30)8.RowFilter中不能使用between and 只能用>= and <=
代替
110Asp.net 随记 Part1 (1- 30)9
.获得任意窗体的实例化句柄 
111Asp.net 随记 Part1 (1- 30)_Default wf1 =
(_Default)Context.Handler;
112Asp.net 随记 Part1 (1- 30)


Asp.net 随记 Part1 (1- 30)

1Asp.net 随记 Part1 (1- 30)10.DataGridView隔行换色的属性
2
Asp.net 随记 Part1 (1- 30)获取或设置应用于 DataGridView 的奇数行的默认单元格样式。
3Asp.net 随记 Part1 (1- 30)dataGridView1.AlternatingRowsDefaultCellStyle.BackColor =
Color.DarkGray;
4
Asp.net 随记 Part1 (1- 30)
5
Asp.net 随记 Part1 (1- 30)
6Asp.net 随记 Part1 (1- 30)11.System.Configuration.ConfigurationErrorsException: The requested database IT-014-211952_FltOrderDB_SELECT is not defined in
configuration.
7
Asp.net 随记 Part1 (1- 30)
8Asp.net 随记 Part1 (1- 30)是由于webconfig 没有正确config <connectionStrings configSource="Config\\DataBaseTest.config" />

9Asp.net 随记 Part1 (1- 30)
10Asp.net 随记 Part1 (1- 30)12
. IE与FireFox兼容性的问题
11Asp.net 随记 Part1 (1- 30)StringBuilder sb = new
StringBuilder();
12
Asp.net 随记 Part1 (1- 30)IE
13
Asp.net 随记 Part1 (1- 30)
14Asp.net 随记 Part1 (1- 30)
1Asp.net 随记 Part1 (1- 30) StringBuilder sb = new StringBuilder();
2Asp.net 随记 Part1 (1- 30)            sb.Append("<Form id=\"frmCreditCardTemp\" action=\"Default3.aspx\" method=\"post\"><input type=\"hidden\" name=\"orderid\" value=\"" + Request.Form["orderid"].ToString() + "\"></form><script language=\"javascript\">document.getElementById(\"frmCreditCardTemp\").submit();</script>"
);
3Asp.net 随记 Part1 (1- 30)            Response.Write(sb);

FireFox中必须加上<html><body>。。。</body></html>

1Asp.net 随记 Part1 (1- 30) StringBuilder sb = new StringBuilder();
2Asp.net 随记 Part1 (1- 30)            sb.Append("<html><body><Form id=\"frmCreditCardTemp\" action=\"Default3.aspx\" method=\"post\"><input type=\"hidden\" name=\"orderid\" value=\"" + Request.Form["orderid"].ToString() + "\"></form><script language=\"javascript\">document.getElementById(\"frmCreditCardTemp\").submit();</script></body></html>"
);
3Asp.net 随记 Part1 (1- 30)            Response.Write(sb);

 

1Asp.net 随记 Part1 (1- 30)在FireFox中javascript最好包在<body>。。</body>中,不然会有一些问题。
2
Asp.net 随记 Part1 (1- 30)
3
Asp.net 随记 Part1 (1- 30)13.c#里string 与char数组怎么转换
4
Asp.net 随记 Part1 (1- 30)string yb = "abc";
5
Asp.net 随记 Part1 (1- 30)char[] yy = yb.ToCharArray()
6
Asp.net 随记 Part1 (1- 30)
7
Asp.net 随记 Part1 (1- 30)14.判断是页面上已经动态加载过javascript了
8
Asp.net 随记 Part1 (1- 30)if (!Page.IsStartupScriptRegistered("javascriptKey"))
9
Asp.net 随记 Part1 (1- 30){
10
Asp.net 随记 Part1 (1- 30)        System.Text.StringBuilder vScripts = new System.Text.StringBuilder(2000);
11

1Asp.net 随记 Part1 (1- 30)16.通过程序把存储过程中的自增长的值输出来
2
Asp.net 随记 Part1 (1- 30)C#:
3Asp.net 随记 Part1 (1- 30)Database db =
DatabaseFactory.CreateDatabase(connectString);
4Asp.net 随记 Part1 (1- 30)            DbCommand dbCommand =
db.GetStoredProcCommand("sp1_SaveParamToTempParamForm");
5
Asp.net 随记 Part1 (1- 30)
6
Asp.net 随记 Part1 (1- 30)            #region Param
7
Asp.net 随记 Part1 (1- 30)
8Asp.net 随记 Part1 (1- 30)            db.AddOutParameter(dbCommand, "@paramNum", DbType.Int32, 4
);
9Asp.net 随记 Part1 (1- 30)            //
当前用户ID
10
Asp.net 随记 Part1 (1- 30)            db.AddInParameter(dbCommand, "uid", DbType.String, uid.Trim());
11
Asp.net 随记 Part1 (1- 30)
12
Asp.net 随记 Part1 (1- 30)            #endregion
13
Asp.net 随记 Part1 (1- 30)           
14
Asp.net 随记 Part1 (1- 30) db.ExecuteNonQuery(dbCommand);
15
Asp.net 随记 Part1 (1- 30)
16Asp.net 随记 Part1 (1- 30)            return (int)db.GetParameterValue(dbCommand, "@paramNum
");
17Asp.net 随记 Part1 (1- 30)**********************************************

18Asp.net 随记 Part1 (1- 30)存储过程:
19Asp.net 随记 Part1 (1- 30)CREATE PROCEDURE
dbo.sp1_SaveParamToTempParamForm
20Asp.net 随记 Part1 (1- 30)    @paramNum int
output,
21Asp.net 随记 Part1 (1- 30)    @Uid varchar(30
),
22Asp.net 随记 Part1 (1- 30)    @paramStack varchar(400
),
23Asp.net 随记 Part1 (1- 30)    @recordTime datetime

24Asp.net 随记 Part1 (1- 30)AS
25Asp.net 随记 Part1 (1- 30)DECLARE @retcode int, @rowcount int
26Asp.net 随记 Part1 (1- 30)Set Lock_Timeout 1000
27Asp.net 随记 Part1 (1- 30)
28Asp.net 随记 Part1 (1- 30)Exec @RetCode =
sp3_TempParamForm_i
29Asp.net 随记 Part1 (1- 30)    @paramNum = @paramNum
,
30Asp.net 随记 Part1 (1- 30)    @Uid = @Uid
,
31Asp.net 随记 Part1 (1- 30)    @paramStack = @paramStack
,
32Asp.net 随记 Part1 (1- 30)    @recordTime = @recordTime

33Asp.net 随记 Part1 (1- 30)
34Asp.net 随记 Part1 (1- 30)SELECT @retcode = @@ERROR, @rowcount = @@ROWCOUNT,@paramNum=@@IDENTITY

35Asp.net 随记 Part1 (1- 30)IF @retcode = 0 AND @rowcount = 0
36Asp.net 随记 Part1 (1- 30)  RETURN 100
37Asp.net 随记 Part1 (1- 30)ELSE
38Asp.net 随记 Part1 (1- 30)  RETURN @retcode
39Asp.net 随记 Part1 (1- 30)GO
40Asp.net 随记 Part1 (1- 30)
41Asp.net 随记 Part1 (1- 30)--------------------------------------------

42Asp.net 随记 Part1 (1- 30)CREATE PROCEDURE [dbo].[sp3_TempParamForm_i]
43Asp.net 随记 Part1 (1- 30)  @paramNum int output,
44Asp.net 随记 Part1 (1- 30)  @Uid varchar(30
),
45Asp.net 随记 Part1 (1- 30)  @paramStack varchar(400
),
46Asp.net 随记 Part1 (1- 30)  @recordTime datetime

47Asp.net 随记 Part1 (1- 30)AS
48Asp.net 随记 Part1 (1- 30)
49Asp.net 随记 Part1 (1- 30)DECLARE @retcode int, @rowcount int

50Asp.net 随记 Part1 (1- 30)
51Asp.net 随记 Part1 (1- 30)SET LOCK_TIMEOUT 1000

52Asp.net 随记 Part1 (1- 30)
53Asp.net 随记 Part1 (1- 30)INSERT INTO
TempParamForm(Uid,paramStack,recordTime)
54Asp.net 随记 Part1 (1- 30)VALUES(@Uid,@paramStack,@recordTime
)
55
Asp.net 随记 Part1 (1- 30)
56Asp.net 随记 Part1 (1- 30)SELECT @retcode = @@ERROR, @rowcount = @@ROWCOUNT,@paramNum=@@IDENTITY

57Asp.net 随记 Part1 (1- 30)IF @retcode = 0 AND @rowcount = 0
58Asp.net 随记 Part1 (1- 30)  RETURN 100
59Asp.net 随记 Part1 (1- 30)ELSE
60Asp.net 随记 Part1 (1- 30)  RETURN @retcode
61Asp.net 随记 Part1 (1- 30)GO
62Asp.net 随记 Part1 (1- 30)
63Asp.net 随记 Part1 (1- 30)
1Asp.net 随记 Part1 (1- 30)通过document.all.tags对HTML元素进行选择,这样就可以通过循环遍历到所有自己想找的元素
2Asp.net 随记 Part1 (1- 30)//檢測選擇多选框的是否指选择一项,并排除全选按钮

3}
17.计算硬盘和文件夹的容量
Asp.net 随记 Part1 (1- 30)using System;
Asp.net 随记 Part1 (1- 30)
using
System.IO;
Asp.net 随记 Part1 (1- 30)
Asp.net 随记 Part1 (1- 30)
public class
ShowDirSize
Asp.net 随记 Part1 (1- 30)引用当前工程中另一个项目名:
Asp.net 随记 Part1 (1- 30)Application[
"WebResourcePath"
].ToString()
Asp.net 随记 Part1 (1- 30)调用网页当前访问的域名:
Asp.net 随记 Part1 (1- 30)Request.ServerVariables[
"server_name"
].ToLower()
Asp.net 随记 Part1 (1- 30)Http:
Asp.net 随记 Part1 (1- 30)Request.ServerVariables[
"HTTP_REFERER"]

 

18.在Web.config中创建自定义的Sections,以及如何读取?
网上有许多文章是以这种形式定义Section的,其实是错的
<section name="myDictionary" type="System.Configuration.NameValueSectionHandler,system"/>
正确的为以下
<section name="myDictionary" type="System.Configuration.NameValueSectionHandler"/>

Asp.net 随记 Part1 (1- 30)Web.Config中
Asp.net 随记 Part1 (1- 30)Asp.net 随记 Part1 (1- 30)..
Asp.net 随记 Part1 (1- 30)
<configSections>

Asp.net 随记 Part1 (1- 30)   
<section name="myDictionary"  type="System.Configuration.NameValueSectionHandler"/>
Asp.net 随记 Part1 (1- 30) 
</configSections>
Asp.net 随记 Part1 (1- 30)
<myDictionary>
Asp.net 随记 Part1 (1- 30)   
<add key="first" value="1"/>
Asp.net 随记 Part1 (1- 30)   
<add key="second" value="2"/>
Asp.net 随记 Part1 (1- 30)   
<add key="third" value="3"/>
Asp.net 随记 Part1 (1- 30)
</myDictionary>
Asp.net 随记 Part1 (1- 30)
Asp.net 随记 Part1 (1- 30)Asp.net 随记 Part1 (1- 30)..
Asp.net 随记 Part1 (1- 30)读取用的GetConfig即可:
Asp.net 随记 Part1 (1- 30)System.Configuration.ConfigurationManager.GetSection(
@"myDictionary");

19.有关于FindControl

FindControl 方法只搜索页的直接或顶级容器;它不在页所包含的命名容器中递归搜索控件。

Page 中FindControl,一般就是this.FindControl,就OK

MasterPage中FindControl

就是这样

Asp.net 随记 Part1 (1- 30)ContentPlaceHolder cph;
Asp.net 随记 Part1 (1- 30)
Asp.net 随记 Part1 (1- 30)Label lblLabel;
Asp.net 随记 Part1 (1- 30)
Asp.net 随记 Part1 (1- 30)cph
= (ContentPlaceHolder)Master.FindControl("ContentUp"
);
Asp.net 随记 Part1 (1- 30)
Asp.net 随记 Part1 (1- 30)lblLabel
= (Label)cph.FindControl("lblInfo"
);
Asp.net 随记 Part1 (1- 30)
Asp.net 随记 Part1 (1- 30)

20.INamingContainer

看到有下划线分开的ClientID,那就是INamingContainer造成的。
例如用一个Master吧,里面两个Content,它们内部都有一个LinkButton1,那么怎么区分呢?因为Content是INamingContainer,所以就会让两个LinkButton1分别命名为Content1_LinkButton1和Content2_LinkButton2。说得不严谨,不过INamingContainer大概就是这样运作的。
接着,在Master里面找LinkButton1,会找不到。递归查找,没办法保证返回的那个来自于Content1还是Content2(实际上能保证,但理论上不能依赖于这种现实)。

21.Func<T1,T2,Tresult> 2008年4月19日14:45:59

Asp.net 随记 Part1 (1- 30)protected List<QueryConditionEntity> FindListByValue(List<QueryConditionEntity> iList, ListItemCollection rbl)
        }


22. 2008年4月20日10:26:14 

23.解决LinkButton不能指定target的问题
     lbtn.Attributes.Add("href", "~/hotelSearch.aspx");
     lbtn.Attributes.Add("target", "_blank");

24.  GridView中的ToolTip 2008年5月13日 23:05:41

Asp.net 随记 Part1 (1- 30)看看以下範例是否有用:
Asp.net 随记 Part1 (1- 30)
Asp.net 随记 Part1 (1- 30)   
protected void GridView1_RowDataBound(object
sender, GridViewRowEventArgs e)

 

 

Asp.net 随记 Part1 (1- 30)我來提供另一種方法:
Asp.net 随记 Part1 (1- 30)


相关文章: