随记汇总

统计程序运行的时间:Stopwatch

Stopwatch sw = new Stopwatch();

sw.Start();

sw.Stop();
 
Console.WriteLine(sw.Elapsed);
 
第2种计算方式:
DateTime startTime = DateTime.Now;

BindReaderData(userId);//需要计算运行的程序或方法

DateTime endTime = DateTime.Now;

TimeSpan timeSpan = startTime - endTime;

Response.Write(string.Format("exec times:{0}", timeSpan.Milliseconds));

 


 
WinForm中实现通过按钮来全选复制文本框中的内容:
        private void button1_Click(object sender, EventArgs e)

        {

            txt1.SelectAll();

            Clipboard.SetDataObject(txt1.SelectedText);

            label1.Text = "复制成功";

        }

 


 

ComboBox默认项

ComboBox.SelectedIndex = 0;

SelectedIndex 属性和 SelectedItem 属性:
SelectedIndex属性返回一个表示与当前选定列表项的索引的整数值,可以编程更改它,列表中相应项将出现在组合框的文本框内。如果未选定任何项,则SelectedIndex 为-1;如果选择了某个项,则SelectedIndex是从0开始的整数值。

SelectedItem 属性与 SelectedIndex 属性类似,但是SelectedItem 属性返回的是项。


 

文本框获得焦点:

winform窗口打开后文本框的默认焦点设置,进入窗口后默认聚焦到某个文本框,两种方法:

①设置tabindex

把该文本框属性里的tabIndex设为0,焦点就默认在这个文本框里了。

②Winform的Activated事件

在Form的Activated事件中添加textBox1.Focus(), 即可获得焦点。

private void Form1_Activated(object sender, EventArgs e) 

textBox1.Focus(); 

TextBox是可以获得焦点的. 有几个前提:

1. TextBox所属的窗体(Form)在可操作(Active)状态. 即用户选中了Form.
2. TextBox的Enable属性,Visiable属性为True.

刚开始时原以为在Form的Load事件中添加textBox1.Focus(),测试失败

private void Form1_Load(object sender, EventArgs e) 

textBox1.Focus(); 

因为在窗体加载时调用Focus()函数时, TextBox还未能成功的被显示到界面上。所以导致了失败。


 连接和拆分字符串

      string[] year = commaDelimited.Split(new char[] {','});

 

      string colonDelimeted = String.Join(":", year);

 

 


 

在将 nvarchar 值 + 转换成数据类型 int 时失败错误的解决办法 :


当我们写存储过程语句的时候 如果遇到

declare  @sql nvarchar(200),@age int

set  @sql =  'selet * from user where age = ' + @age,这时就会报错.

因为 我们要把 类似 '26' 这样的字符串拼接上去,而不是真正的把 26 拼接上去.

所以会报错,解决方法 :

set  @sql =  'selet * from user where age = ' + cast(@age as nvarchar(10))

 


 WinForm进度条的使用(ProgrameBar):

        private void btnStart_Click(object sender, EventArgs e)

        {

            for (int i = 0; i < 50000; i++)

            {

                txtShow.Text = (i+1)/500 +"%";

                //使空间重绘其工作区域内的无效区域

                //txtShow.Update();



                //处理当前的操作,而不是只专注于运算,降低运算速度,而处理其他的操作,比如鼠标的移动

                Application.DoEvents();



                progressBar1.Value = (int)(((i + 1) / 50000.0) * 100);

            }

            MessageBox.Show("完成");

        }

进度条使用.rar

 


JS调试步骤:

打开IE - F12打开开发人员工具 - 切换到脚本选项卡 - 启动调试 - 设置断点 - 回到网页页面刷新 - 进入调试 - F11单步调试

 


C#中null与string.Empty有啥区别?null表示仅有变量名,没分配内存;Empty表示有变量而且分配内存了,知识里面的值为空""而已

当你只定义一个str而不为其分配内存时用string str=null,但是在接下来你使用它之前必须为它赋值如str=“xxxx”也就是为它初始化
而string str= string.Empty是定义和初始化放在了一起它实际是等价于string str=null;str="";
具体使用时,如果你确定在使用前会给str赋值就用string str=null,否则用string str= string.Empty,不然程序运行时可能会引发空指针异常

 


WinForm弹出保存文件对话框并设置保存文件的格式:

SaveFileDialog sfd = new SaveFileDialog();
sfd.Filter = "excel表|*.xls";

sfd.ShowDialog() == System.Windows.Forms.DialogResult.OK; 判断是否点击保存按钮

sfd.FileName表示设置文件名


 命名空间详解:http://dev.yesky.com/msdn/192/2549192.shtml

namespace ItcastSIM
 List<Model.Areas> list = bll.GetAllAreasById(aid);
 
namespace ItcastSIM.Model
  public class Areas 类名

ItcastSIM与ItcastSIM.Model可以理解为从属关系。

 


 

C# is和as运算符:


 


 带参数的sql语句执行中出现 “必须声明标量变量@id” 错误原因分析

你传给Adapter的是 "SELECT * FROM tbTest WHERE id =@id ", 你并没有给Adapter传入@id对应的参数值。
如果你把整个selectCMD对象传给Adapter,这时候就是带上参数值的了。

 内部实现有时间需要再看看


 

ASP.NET后台调用前台JS自定义方法:

Asp.net 后台调用js方法(转) 

http://bbs.csdn.net/topics/340172403

ClientScript.RegisterStartupScript(this.GetType(), "","<script>JSFunName('" + str+ "');</script>", true)  //str是后台c#变量

 

aspx页面引入命名空间,在aspx中<% %>写服务器端代码,可以简写类名称。

 <%@ Import Namespace="Snda.Qidian.UserCenter.Entity" %>

 

 jquery中checkbox选中状态的正确写法:

 //设置默认选项状态

if (data[1].Status == 1) {

    $("#cbxSetDefault").attr("checked", "checked"); //正确写法,大小写敏感,如果写为Checked在IE下不兼容

}

else if (data[1].Status == 0) {

    $("#cbxSetDefault").removeAttr("checked");

}



//错误写法:(在IE下不兼容,无效)

$("#cbxSetDefault").attr("checked", true);

 

前端开发框架:bootstrap

 VS插件推荐:Resharper

Resharper功能更强,但消耗资源多,建议配置好的机子用。VAssistX拥有Resharper绝大部分功能,消耗资源少,推荐配置不高的机子用。

 

UserShareDao :类命名 Dao - Data Access Object 数据访问对象 访问dll层

 

aspx页面在控制某一段时间内显示内容:(aspx页面写c#代码不需要更新dll,除非引用了其他工程)

 

<div>

        <%

            DateTime nowTime = new DateTime(2014,3,18,0,0,0);

            

            DateTime beginTime = new DateTime(2014, 2, 26);

            DateTime endTime = new DateTime(2014, 3, 17, 23, 59, 59);



            if (nowTime >= beginTime && nowTime <= endTime)

          {%>

        <a href="http://www.baidu.com" target="_blank">百度</a>

        <%   

            }

        %>

    </div>

 

 对不符合条件的筛选判断:一个个单独的去判断,如果不符合即返回,把最可能不符合的判断放最前面(关关设卡)。 而不要放进来后再逐层次的去判断。

这样做比较简单,明了:

if(条件不符合1) {return}

if(条件不符合2) {return}

被关关设卡后都闯过来的,后面的就正常执行。前面不符合的都过滤掉了。

 

而不应该用判断是否符合来做:

if(条件符合1)

{

if(条件2是否符合){...}

else{...}

}

 

JS规范:js方法以小写字母开头。Js没有方法重载,只认方法名称,参数一一对应起来。

样式和JS文件引入在元素之后,不会造成影响,表现正常。

 

互斥锁 防止恶意大并发请求:

/// <summary>
/// 互斥锁对象
/// </summary>
private static object asyncLock = new object();

lock (asyncLock)
{
//核心执行语句 可以防止大并发恶意请求
//可以很大程度上完善
}

 

C#和JS对url进行编码:

JS:encodeURIComponent(location.href);

C#:

Server.UrlEncode("xx");
System.Uri.EscapeDataString("xx");
System.Uri.EscapeUriString ("xx");
System.Web.HttpUtility.UrlEncode("xx");

 

JS中用join拼接数组中的字符串:

//显示提示信息

function showPopMsg(msg) {

    var html = [

    "<div class=\"small\" style=\"height:160px;\">",

    "<div class=\"smallbox\" style=\"height:146px;\">",

     "<a class=\"cha\" href=\"javascript:;\" onclick=\"layer_up.close()\" title=\"关闭\"><img src=\"/ploy/20140421/images/chaicon.png\" width=\"14\" height=\"14\" border=\"0\"></a>",

    "<div class=\"dafon\" style=\"padding-top:50px;\">{0}<br>".format(msg),

    "</div>",

    "</div>",

    "</div>"].join("");

    layer_up.show("toupiaochuang", html);

}

 

 js用arguments[]来获取ajax返回的数据:

 var data = arguments[0];  // returnText = "{result:1,currency:"xxx"}";

 

VS编译Debug和Release的区别:

Debug调试版本,包含调试信息,方便程序员调试。

Release发布版本,进行优化处理,代码大小和访问速度都有提升。

#if(DEBUG)

    string path = HttpContext.Current.Server.MapPath("~/Config/ShopConfig-Debug.xml");

#else

    string path = HttpContext.Current.Server.MapPath("~/Config/ShopConfig.xml");

#endif

VS2008 Debug与Release的本质区别(转)

 

 Web 应用中主要使用 BootStrap CSS 框架

 

.Net主要框架:

ASP.NET MVC:Model View Controller 模型-视图-控制器;

Nhibernate:目前应用的最广泛的开放源代码的对象关系映射框架(ORM)。

Spring.NET:用得最多的用途,是主要用来做依赖注入的,主要用在大型企业应用系统的实施中,实现松耦合,实现良好的系统架构。

EF:ADO.NET Entity Framework,是微软以 ADO.NET 为基础所发展出来的对象关系对应 (O/R Mapping) 解决方案。

iBatis:是一个基于SQL映射支持Java和·NET的持久层框架。

DWZ:DWZ富客户端框架(jQuery RIA framework),是中国人自己开发的基于jQuery实现的Ajax RIA开源框架。(类似Easy UI)

.NET 版的SSH:Nhibernate + spring.net + MVC

SSH:Secure Shell,SSH 为建立在应用层和传输层基础上的安全协议。

 

 根据Ajax返回数据页面弹窗被拦截的解决办法:

 ChckCreateAuthorNoteCallBack: function() {

        var data = arguments[0];

        if (data != null) {

            if (data.IsSuccess) {

                var w = window.open();

                if (data.ReturnString.toLowerCase() == "m") {

                    setTimeout(function() { w.location = "url"; }, 10);

                } else {

                    setTimeout(function() { w.location = "url"; }, 10);

                }

把ajax中加上这个就可以了:async: false,

 

Oracle 查询字段为空或非空语句:

select t.* from tbTest t where t.Image is not null;  / is null

 

使用IEtester看兼容性问题,对JS支持不好,一般用来看样式问题。

另外,看样式问题可以启用IE浏览器的兼容性视图,可以进行设置,来用不同版本IE内核来看样式问题。

 

IE6下点击Button按钮执行JS方法没反应:

http://blog.csdn.net/xiangsuixinsheng/article/details/7056332

 

 运行:mstsc.exe 来启动远程

 

Jquery一个控件绑定多个事件
http://blog.csdn.net/arkblue/article/details/9059709

 

页面添加缓存原则:

带参数的页面都不能用缓存,那种大家浏览都一样的页面才能加缓存。

 

Response.Redirect();

Response.Redirect(url); //此重载内部调用了Response.End()方法,所以,此语句下面的不再执行。

Response.Redirect(url,false); //此重载表示执行此句后继续执行下面语句

Response.Write()语句后面的语句会继续执行

 

C#字符串转换为枚举对象:

app.Status = (AppEnum.PropsStatus)Enum.Parse(typeof(AppEnum.PropsStatus),Field.GetString(reader, "Status")); //Field.GetString(reader, "Status")是枚举项的键或值的字符串形式

 

 C#中的Dictionary字典类介绍

 

 

你可能感兴趣的:(随记汇总)