c#总结4

来源:互联网 发布:centos 6.8安装 分区 编辑:程序博客网 时间:2024/06/13 21:55
1,Convert.ToInt32(null)会返回0而不会产生任何异常,但int.Parse(null)则会产生异常。(int)3.3=3  写法简单对于double类型适合。int.Parse("3.3")Convert.ToInt32(null)返回0总结:(1)Convert.ToInt32的参数比较多,Int.Parse只能转换string类型的.(2)Parse就是把String转换成int,char,double....等,也就是*.Parse(string) 括号中的一定要是string.(3)Convert可以提供多种类型的转换,也就是Convert.*()括号中可以为很多种类型(包括string).2,int16:-32768 到 32767   适用于数值小的情况。65536等于2的16次方。int32:-2,147,483,648 到 2,147,483,647 3,前台使用后台变量时。变量必须是在方法前就声明了。4.逻辑&&优先于逻辑||。与先于或。5.后台绑定数据。<%=str%>绑定后台有声名的变量。<%#str%>绑定后台数据必须调用DataBind()方法。常用于控件的绑定。批处理命令:batch简写:bat是一堆DOS命令的集合。5,服务器控件属性(如Text=)不能%=year% 绑定。不被解析。可以用下方法:%# %只有执行了相应控件的DataBind方法,前台代码中这些控件中使用%# %的绑定才会发生6,如果判断一个字符串是否是空串,使用if(s==String.Empty)和if(s==””)的效率是一样的,但是最高效的写法是if(s.Length==0)7,【updatepannel导致js失效】$(function () {    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(function (sender, e) {           })})9,将元素display none和block清除该元素内容,且不占用域的空间。将元素visibility hidden和visible隐藏该元素内容,但占用域的空间。10,datatable     string maxValue = dtsjz.Compute(max(zrs), ).ToString();     string minValue = dtsjz.Compute(min(zrs), ).ToString(); 11,此时样式只能用单引号。formhtml.AppendFormat(trtd style='text-aligncenter;'a style=color#337AB7{0}a12,查看服务器,可否连接。qwinstaserver192.168.1.1513,使用 @register 指令。 通过声明将自定义 asp.net 服务器控件添加到页或用户控件。 16】notpad想替换换行符:\r\n    或者正则中\s+17】同一个DataTable。两次使用,排序不同。重排序。可以 DataRow[] dataRows = dt.Select(" 1=1", " totals asc ");     DataTable dtemp = dataRows[0].Table.Clone();复制一份表结构相同的表。     foreach (DataRow dr in dataRows)     {         dtemp.ImportRow(dr);     }18,浏览器调试:httpHeaders:Header面板列出资源的请求url、HTTP方法、响应状态码、请求头和响应头及它们各自的值、请求参数等等Preview:预览面板,用于资源的预览。Response:响应信息面板包含资源还未进行格式处理的内容,如常见的json数据.Cookies:cookies面板显示该资源请求中所传输的所有cookies信息,并以表格形式展示。Timing:资源请求的详细信息18】double p1 = 314;Response.Write(String.Format("{0:F2}", p1));带1个格式参数。19】操作dataTable()提取一个方法:参数有dt,字段,怎样操作(比如都÷15)public DataTable CaoZuo(DataTable dt,string str,string str2){try{foreach(DataRow dr in dt.Rows)//遍历每行{foreach(string zd in str.Split(','))//遍历每个字段并重新赋值。{if(dt.Colums.Contains(zd)){dr[zd]=String.Format("{0:F2}",double.Parse(dr[zd].ToString())/15);}}}}catch{}return dt //返回该表。}20】<%%>里可以写程序控制语句如:<%if(true){%>21】页面传值:QueryString  Cookie    Session   Application   PostBackUrl    Server.TransferHttpCookies cookies=Request.Cookies["user_cookie"];一般来说,保存用户密码常见的两种方式是:session和cookie 23】乱码问题:按utf8编码HttpUtility.UrlEncode(title, System.Text.Encoding.UTF8)24】打印对象:console.log()26】if() 和if(){}加大括号就会执行大括号里面所有的代码,不加大括号就会只会执行if()下的第一句代码。27】async. 默认是true,即为异步方式,$.ajax执行后,会继续执行ajax后面的脚本,直到服务器端返回数据后,触发$.ajax里的success方法,这时候执行的是两个线程。若要将其设置为false,则所有的请求均为同步请求,在没有返回值之前,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。28】部署系统1,替换网页:iis中2,替换数据库:导入表dmp3,执行sql29】数据视图使用DataView操作离线数据库更加方便DataView dv = dt_temp.DefaultView; dv.Sort = "TOTAL1 DESC"; DataTable dt = dv.ToTable();31】后台js代码块。第四个参数为代码块。ScriptManager.RegisterClientScriptBlock(this.Page, typeof(Page), null, strN, false);如:strN="$.jBox.prompt('删除失败!该节点含子节点,无法删除,请从最下级子节点删起!', '提示', 'error', { closed: function () { return false;}});";32】SCRIPT5007: 无法获取未定义或 null 引用的属性“name”可能是ajax后台传数据时,格式不对。(多个逗号啥的)34】$清除html元素.remove()  和.empty() <p>abc</p>$("p").empty()    ==== <p></p>  $("p").remove()   ====         把其从dom中删除,而不会保留其所占的位置 35】    $('#startdate').keydown(function (e) {        var key = e.which; //which属性指示了按了哪个按键。        if (key==8) {            if ($('#startdate').val().length < 4) {                $('#startdate').datetimepicker('hide');            }            else {                $('#startdate').datetimepicker('show');            }        }        else {            if ($('#startdate').val().length < 3) {                $('#startdate').datetimepicker('hide');            }            else {                $('#startdate').datetimepicker('show');            }        }    })36】$增加标签  function jiahao() {      //console.log($("tr #jiahao"));      $("#jiahao").parent().after("<tr><td class='form_title'> 投标单位:</td><td><input type='text' style='width:90%' ></input></td><td class='form_title'> 投标联系电话:</td><td><input type='text' style='width:90%' MaxLength='15' onkeyup='if(isNaN(value))execCommand('undo')' onafterpaste='if(isNaN(value))execCommand('undo')'></input></td></tr>")  }37】 onclick='jian(this)' 这样写,就可以轻松获取该对象。 38】$判读变量s是否定义 console.log(typeof ($("#txttbunit7").val()) != "undefined")39】服务器控件到浏览器,要解析的,注意$取标签的时候,要为解析后的标签。40】js保留两位小数num.toFixed(2) (强制两位)num必须为数值类型。否则就要parseFloat(num)转一下。js判断是否为数字:if (!isNaN(z))41】防止异步丢失jsSys.WebForms.PageRequestManager.getInstance().add_endRequest(function (sender, e)42】隔行颜色<tr style='background-color:<%#(Container.ItemIndex%2==0)?"red":"green"%>'>          <td><%#Eval("UID")%></td>      </tr>43】一】后台运行js方法ScriptManager.RegisterStartupScript(Page, typeof(string), "Sort", "Getcss();", true);二】在js中。Getcss为方法的名称。Sys.WebForms.PageRequestManager.getInstance().add_endRequest(Getcss);44】function Getcss() {    debugger    var xsw = 1;    $(".table_all_bg td").each(                function () {                    var z = $(this).html();                    if (!isNaN(z)) {//数字                        //console.log(z);                        if (z.trim() != "") {                            if (z.indexOf(".") != "-1") {                                //debugger                                var tmp = String(z).split(".")[1].trim().length;                                if (tmp > xsw) {                                    xsw = tmp;                                }                            }                            z = parseFloat(z);                            $(this).html(z.toFixed(2));                        }                        if (z.trim()=="") {                        }                        $(this).css({ "text-align": "right", "padding-right": "5px" });                    }                    else {//非数字                        $(this).css({ "text-align": "left", "padding-left": "8px" });                    }                }            )}45】视图CREATE [OR REPLACE]  VIEW view_name AS SELECT 查询46】prevAll() 获得当前匹配元素集合中每个元素的前面的同辈元素。47】求平均数。分析函数sum(area)*100/sum(sum(area)) over()over() 是分析函的格式。用于标识分析函数,否则查询分析器不能区别sum()聚集函数和sum()分析函数48】c#强制两位小数:.ToString("0.00")49】做到程序数据分离。即使没数据,也不能出现黄页。51】后台链接Response.Redirect("SelectSystem.aspx", true);替换原窗口Response.Write("<script language='javascript'>window.open('SelectSystem.aspx');</script>");保留原窗口52】利用这种方法声明多个变量并统一赋值。string mm, nn, oo;mm = nn =oo= string.Empty;53】销毁session,用方法:session.invalidate();54】$设置鼠标悬浮可见思路之一:设置透明度:opacity样式。55】把公共的Html部分写成.ascx。可以公用在很多aspx里。56】//作用是,只让控件局部刷新AsyncPostBackTrigger或者全局刷新PostBackTrigger。<asp:UpdatePanel ID="up" runat="server">     <Triggers><asp:PostBackTrigger ControlID="btn_search" /><asp:AsyncPostBackTrigger ControlID="btnDelete" />     </Triggers></asp:UpdatePanel>记得加上<scriptmanager57】window.location.href = "https://www.baidu.com/";58】href="javascript:void(0)"javascript:是伪协议,表示url的内容通过javascript执行。void(0)表示不作任何操作,这样会防止链接跳转到其他页面。这么做往往是为了保留链接的样式,但不让链接执行实际操作,具体的操作交给链接的onclick事件处理59】setTimeOut的用法function myF() {    setTimeout(function () { $("#right_sub").css("display", "none"); }, 1000);   }60】.push()var a = [];// 创建数组a.push(1); // 添加到最后a.unshift(); // 添加到第一个位置62】vs功能视图-输出。该功能可以查看编译或发布时输出的详细信息。63】变量的索引值foreach(var item in arr)        {                int index = arr.indexOf(item); //index 为索引值        }64】如果在ie下遇到 点击一个链接出现两个页面。我们知道链接的 onclick 事件被先执行,其次是 href 属性下的动作(页面跳转,或 javascript 伪链接),如果不想执行href 属性下的动作执行,onclick 需要要返回 false ,一般是这样写onclick="xxx();return false;".65】c#命名规范私有变量:private int _userId如public void CreateCache(int cacheSize)传入的数据是bytes, KB, MB 还是GB?改成public void CreateCache(int cacheSize_mb)变量:string strint intObject objDouble dblDecimal decDateTime dtmBoolean blnArray arrDropDownList drop66】js调试eval时,如果console出来的是黑体的字符串,那么就要解析为对象。如果需要的是data[]则要eval,且传来的对象要有[]号67】c# &&和&的区别。如果有dt不存在。则if(dt!=null && dt.Rows.Count>0){}  只判断dt!=nullif(dt!=null & dt.Rows.Count>0){}    &前后的bool都做判断。且在做第二个判断时出错。69】aspx页面必须加上<%@ Page %>asp.net 的头信息。用于说明编程语言(C# or VB.NET)、代码分离等页面属性70】asp.net的 事件模型 要求通过委托实现页面与后台事件的结合AutoEventWireup="true"触发页面的事件时(如按钮单击),也会先执行Page_Load方法(只是这个时候的isPostback=true),接着再去执行对应的事件71】Ctrl+Shift+U: 全部变为大写对于sql语句可以用。以优化速度。72】Ctrl+Shift+V: 剪贴板循环 Ctrl+E,S: 查看空白Ctrl+E,W: 自动换行 ctrl+减号:回退到光标上一次的位置73】主键是为了保证数据不重复外键是为了保证数据完整 可以不设置74】配置全局变量1)在web.config中配置后<add key="DqName" value="贵阳市"/>2)在父类中(如BasePage)定义静态变量Dqname public static string DqName = System.Configuration.ConfigurationManager.AppSettings["DqName"].ToString();3)各页面都继承: BasePage75】vs添加现有项时容易出错:后台找不到前台控件id.desinger.cs文件没生成。76】外部js文件取后台数据。用ajax()77】ScriptManager.RegisterClientScriptBlock(控件,类型,标识符,脚本,是否带标签(<script></script>));78】添加端口:防火墙》》入站规则》》添加79】:USERCODE指的是变量。 where USERCODE = :USERCODE where USERCODE = 'admin'  80】vs2010发布的时候丢失部分文件 因:打包/发布设置了》仅限运行此应用程序所需文件。 若要添加则可以,选中或多选 右键,属性 生成操作 => 内容81】.com 顶级域名baidu.com 一级域名www.baidu.com 二级域名bbs.baidu .com 二级域名82】windows搜索可以这样:.*scc.vssscc .scc .vspscc这些结果。83】删除数据库表的时候一定小心:级联删除Cascade级联删除。确定没有级联删除方可备份删除,或者备份全。84】datatable排序DataView dv = dt.DefaultView;    dv.Sort = "ID";    dtCopy = dv.ToTable();  85】数组:集合:泛型>>ListArrayListHashtable泛型>>Dictionary86】        public void Write(string path)        {            FileStream fs = new FileStream(path, FileMode.Create);            StreamWriter sw = new StreamWriter(fs);            //开始写入            sw.Write("Hello World!!!!");            //清空缓冲区            sw.Flush();            //关闭流            sw.Close();            fs.Close();        }
88】如果用了服务器控件,比如<asp:Button ,若不在<asp:UpdatePanel中,则每次点击都会触发后台的Page_Load()89】Redis是一个开源的使用ANSI C语言编写的Key-Value数据库99】btn_Add.Visible = false;后台清除控件100】sum1=abcdasum1 = sum1.Substring(sum1.IndexOf("a")+1, sum1.IndexOf("a", sum1.IndexOf("a") + 1) - sum1.IndexOf("a")-1);返回bcd101】package不仅能把存储过程分门别类,而且在package里可以定义公共的变量/类型102】单选框radio分组取决于相同的name <input name="Fruit" type="radio">103】当页面载入时执行:. OnInit. OnLoad. Button_Click104】保存会话状态 Public.USERSTATE UserState = new Public.USERSTATE();//new个对象以存储用户信息。 UserState.M_User = m_user;;//把获取的用户信息赋值给UserState.M_User Session.Add("UserState", UserState);//把用户信息保存到Seesion里并命名为UserState。 父页面中: protected USERSTATE UserState;声明字段以保存会话信息。方便以后使用。 UserState = Session["UserState"] as USERSTATE;//把Seesion中的这个信息强转为类型USERSTATE。  105】repeater中 在每项被绑定数据后触发的事件 OnItemDataBound="GeneralRepeater_OnItemDataBound"  106】 c#删除总结: 前:<input  name="checkBox" value="<%#Eval("wtid") %>" /> 后: string DelLists = Request.Form["checkBox"]; 后台Request.Form["checkBox"];获取到name属性为"checkBox"的且被选中的checkbox的value值。  107】 无法使用前导 .. 在顶级目录上退出 使用虚拟路径~/login.aspx 虚拟路径:    ~/images/1.jpg:在文件的子目录里面找到images里面的1.jpg   ../images/1.jpg:在文件的父级目录里面找到images里面的1.jpg   108】上传附件 name="FileUpload2"HttpContext.Current.Request.Files["FileUpload2"];如果后台获取不到,可能是form嵌套问题。 110】sql注入1 or mk=2或1' or zt ='1111】webForm的,输出内容Response.Write() 112】与 path 相对应的物理文件路径。string fullpath = Request.MapPath("~\\TestFile.txt");错误捕捉:Request.AppRelativeCurrentExecutionFilePath显示找不到文件的具体信息。 113】assembly表示控件所在的程序集名称,namespace表示控件的命名空间,tagPrefix就是我们所要设置的项了<%@ Register TagPrefix="Webdiyer" Namespace="Wuqi.Webdiyer" Assembly="AspnetPager" %> 114】"../" 相对当前(根据不同的语境,当前是不同的)的上一级目录"./"  就是当前目录"~/" 当前项目的根路径,只在服务器端有效。115】asp.net 支持三种开发模式Web Pages:是最简单的 ASP.NET 网页开发编程模型。单一网页。MVC:Web-Forms:117】紧耦合:118】c#后台获取根目录。string RootPath = HttpContext.Current.Request.PhysicalApplicationPath;//可在类中使用。等于string RootPath = Server.MapPath("~/");