一行代码收集页

1. 获取类实体的属性值
//Object container
//System.ComponentModel 命名空间
 PropertyDescriptor descriptor = TypeDescriptor.GetProperties(container).Find(propName, true);
return descriptor.GetValue(container);

2. .net2.0 跟.net1.0 的asp.net应用程序不能同时分配到同一个应用程序池上(w3p.exe)

参考:http://blog.csdn.net/tiantian1980/archive/2008/05/30/2495417.aspx

 

3. Host文件位置 :C:\WINDOWS\system32\drivers\etc

4. Response.Redirect(http://www.0576sy.cn/); 后写不写Response.End(); 效果都是一样的.

5.使用    Response.Buffer = false; 可以是使页面内容直接输出,而不是生成全部html(输出数据)后再输出,可以在页面生成或者需要执行一个长时间操作是使用,把要长时间执行的操作写到页面末尾</html><%DoJob()%>,或者在rotected override void Render(HtmlTextWriter writer) 的重载中调用,

6.随机读取数据(MSSQL) Select * From Tablename Order By newId()

7.设置首页跟收藏, 注意收藏时使用 js location.hostname(href) 存在访问权限问题,可以使用服务器脚本或静太指定
<a href="#" onclick="window.external.AddFavorite('http://<%#Request.ServerVariables["HTTP_HOST"] %>', '<%#Setting.CompanyName %>');">收藏本公司</a>
<a href="#" onclick="this.style.behavior='url(#default#homepage)';this.setHomePage(location.hostname);">设为首页</a>

8.Select Into 与 Insert into  Select ...

Select Into: 目标表(下面是NewShippers )不存在,语句执行后将创建
   SELECT Shippers.*, Link.Address, Link.City,
                   Link.Region, Link.PostalCode
INTO NewShippers
FROM Shippers
     JOIN LinkServer.DB.dbo.Shippers AS Link
       ON (Shippers.ShipperID = Link.ShipperID)

Insert Into Select :待插入表已经存在

INSERT INTO MyBooks(columns)
   SELECT title_id, title, type
   FROM titles
   WHERE type = 'mod_cook'


 

 9. FCK V2.* 在GB2312编码下上传文件乱码
FCKeditor\editor\filemanager\browser\default下找到frmupload.html和frmresourceslist.html
在Head里面加<meta http-equiv="content-type" content="text/html; charset=gb2312"> 

10.Asp.net2.0 中App_Code 与App_Code.dll
如果选择将App_Code目录上传到空间那么就要保证Bin目录下不要包含App_code.dll(发布网站时一般会生成)文件,即两个只能选一个,不然会出现两个程序集冲突的情况.

11.Cache 类是线程安全的,在asp.net环境下不需要额外的代码

12.JQuery中使用 $("input[name=searchType][checked]") 来选中一组名叫searchType的radio元素中已选中的那个

13.GridView如果不绑定数据源控件,则以下两种方式,无法获取主键: e.Keys[0].ToString() e.Keys["id"].ToString() 请使用以下方式获取主键: gv.DataKeys[e.RowIndex].Value 13.GridView如果不绑定数据源控件,则以下两种方式,无法获取主键:
e.Keys[0].ToString()
e.Keys["id"].ToString()
请使用以下方式获取主键:
gv.DataKeys[e.RowIndex].Value

15.将整型转化成二进制字符串表示MessageBox.Show( Convert.ToString(-1, 2));

16.IIS7.0中禁止脚本运行,需要设置对应目录的处理程序映射,在高级里面取消执行脚本,(批量设置时在下放空白处点鼠标右键找到相应的菜单进行设置)

17.强制浏览器站兼容模式显示<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />

18.MSSQL拼接行数据
Declare @className nvarchar(1000)
Select @className=''  --注意一定要先初始化变量
Select @className=@className + t.className +';'   From (Select ClassName From oblog_logclass  ) as t
Select @className as CN

19.可以在asp.net环境的线程中使用System.Web.Hosting.HostingEnvironment.MapPath("/")来将获取实际地址

20.获取当天(或前后几天)凌晨时间,DateTime.Now.Date.AddDays(+-3)

21. <%#txtTilte.Text%> 方式在页面上绑定一次后会创建一个匿名控件,视图状态会保存下来因此只要在条件“!IsPostBack”中绑定一次就可以了

22.编辑页面内容(Web编辑器实现原理)地址栏输入:javascript:if(document.body.contentEditable=true);

23.使用Function名称.Call或Apply来掉用js函数,实现事件触发的效果

  如:function ddl_change(){

        alert($(this).val());

     }

  是下拉框改变事件的处理函数,可以使用 ddl_change.call($("ddlProvince")[0],null,null); 来调用,这样$(this)就可以获取到ddlProvince控件了

24.关闭模态弹窗后刷新主窗口,需要使用button按钮,LinkButton无效,$("btnRefresh").click();

25.SQL dateAdd(day,0.9,'2011-11-07 23:59:59') 结果仍旧是2011-11-07 ... 即不满一天的会忽律

26.LINQ 返回可能为空记录表的某字段MAX的安全作法
                var retId = Ctx.SqlCmdTexts.Max(ent => (int?)ent.sequence);
                int maxId = retId.HasValue ? retId.Value + 1 : 1;

 

27.SqlCommand添加可空参数

        public void AddParameter(SqlCommand cmd, string parameterName, object value)
        {
            SqlParameter parameter = new SqlParameter(parameterName, value);
            if (value == null)
            {
                parameter.IsNullable = true;
                parameter.Value = DBNull.Value;
            }
            cmd.Parameters.Add(parameter);
        }

28.使用SynchronizationContext.Current.Post"延迟"UI事件执行
1.如使用ShowDialog打开的窗体,在关闭时先关闭窗体再显示提示信息则可以使用Post((o)=>{MessageBox(....)},null);
2.使用ShowDialog打开的窗体回调时需要重打开一个新的也可以这样写
      SynchronizationContext.Current.Post((o) =>
       {
               var btn = typeof(ToolStripButton).GetMethod("OnClick", BindingFlags.NonPublic | BindingFlags.Instance);
                btn.Invoke(bindingNavigatorAddNewItem, new object[] { null });
       },null);

29.使用System.Data.DataSetExtensions 可以让DataTable支持Linq
            DataTable dt = new DataTable();
            FillDataTable(dt);
            dt.AsEnumerable().Where(ent => ent.Field<int?>("Level") >= 3).ToList();

30.复制DataTable的结构并填充制定页面的数据(客户端分页)
            DataTable dt = SqlHelper.ExecuteDataset(DBCtx.ConnStr, CommandType.Text, cmdText).Tables[0];
            _Total = dt.Rows.Count;
            DataTable dt2 = dt.Clone();
            foreach(var dr in dt.AsEnumerable().Skip(startRowIndex).Take(maximumRows))
            {
                dt2.Rows.Add(dr.ItemArray);
            }
     
            return dt2;

31.创建非聚集包含索引并制定索引填充因子
CREATE NONCLUSTERED INDEX [索引名]
ON [dbo].[表明]
(
 [索引列名] ASC
)
INCLUDE ( 包含列1,包含列2)
WITH ( fillfactor =80  , SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF)
 ON [PRIMARY]

32.Linq/Lambda 之分组统计实现

            List<BorrowTimeWinModel> list = new List<BorrowTimeWinModel>()
            {
                new BorrowTimeWinModel(){MouldNo="223",UseCount=1,Barcode="1"},
                new BorrowTimeWinModel(){MouldNo="223",UseCount=2,Barcode="1"},
                new BorrowTimeWinModel(){MouldNo="223",UseCount=3,Barcode="5"},
                new BorrowTimeWinModel(){MouldNo="223",UseCount=4,Barcode="1"},
                new BorrowTimeWinModel(){MouldNo="221",UseCount=1,Barcode="1"},
                new BorrowTimeWinModel(){MouldNo="221",UseCount=2,Barcode="1"},
                new BorrowTimeWinModel(){MouldNo="221",UseCount=3,Barcode="5"},
                new BorrowTimeWinModel(){MouldNo="221",UseCount=4,Barcode="1"}
            };

           var rList=  list.GroupBy(ent=>ent.MouldNo).Select(ent=>new {Name=ent.Key,Sum=ent.Sum(it=>it.UseCount),Max=ent.Max(it2=>it2.Barcode)}).ToList();
           foreach (var r in rList)
           {
               Console.WriteLine(string.Format("Name:{0},Toatl:{1},Max:{2}", r.Name, r.Sum, r.Max));
           }

按多个字段分组
                   var byM = builder.MOPTable.GroupBy(ent => new { ent.MCode, ent.MName }).Select(g =>
                        new { MCode = g.Key.MCode,
                              MName = g.Key.MName,
                              Cost=g.Sum(it=>it.Cost),
                              Qty=g.First().Qty,
                              Price = g.Sum(it => it.Cost) / g.First().Qty
                            }
                        );

33.获取本机MAC,与NDS配置信息
            List<IPAddress> res = new List<IPAddress>();
            foreach (NetworkInterface nic in NetworkInterface.GetAllNetworkInterfaces())
            {
                Console.WriteLine(nic.GetPhysicalAddress().ToString());//MAC
               
           
                if ((nic.OperationalStatus == OperationalStatus.Up) && (nic.NetworkInterfaceType != NetworkInterfaceType.Loopback))
                {
                    foreach (IPAddress dns in nic.GetIPProperties().DnsAddresses)
                    {
                        if (!res.Contains(dns))
                            res.Add(dns);
                    }
                }
            }

34.动态加载窗体
使用Assembly.LoadFrom("F.Studio.WinUI.exe") 要带扩展名,并且效率没Load搞
参考:http://www.cnblogs.com/xuefeng1982/archive/2009/11/09/1598956.html
        private Form CreateForm(ModuleInfo info)
        {
            var a = System.IO.Path.GetFileNameWithoutExtension(info.Assembly);
            var t = Assembly.Load(a).GetType(info.Type, true);
            var frm = Activator.CreateInstance(t) as Form;
            return frm;     
        }

菜单节点
      <ModuleInfo>
        <Id>8811</Id>
        <Title>合作伙伴</Title>
        <Key>be6a046b-1431-491c-97e6-70d5fd6bc001</Key>
        <ToolTip />
        <Assembly>FIStudio.WinUI.exe</Assembly>
        <Type>FIStudio.WinUI.UI.frmCooperatorMgr</Type>
        <Args />
        <IsShowDialog>false</IsShowDialog>
        <OrderId>10</OrderId>
      </ModuleInfo>

35.返回指定泛型的基础类型Nullable.GetUnderlyingType(gType);

 

36. licenses.licx 的解决方法

 

      在使用DevExpress控件的时候。每次对窗体进行更改的时候,都会出现一个对话框。发布的时候 也会出现一个对话框。之前的解决方法是在发布的时候把licenses.licx给删除掉,但是这个方法治标不治本。每次发布的时候都要删除,如果忘记删除了,还需要重新发布,让人很是抓狂。现通过Google,找到了解决方法:licenses.licx Properties 的Build Action 设置为无即可。

       深入的解决问题是很有必要的,这样解决问题的方法是一劳永逸的。

p

你可能感兴趣的:(代码)