c#總結4

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}a

12,查看服務器,可否連接。qwinstaserver192.168.1.15

13,使用 @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,瀏覽器調試:http
Headers: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.Transfer
HttpCookies 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,替換數據庫:導入表dmp
3,執行sql

29】數據視圖
使用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】防止異步丟失js
Sys.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>
記得加上<scriptmanager
57】
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 str
int int
Object obj
Double dbl
Decimal dec
DateTime dtm
Boolean bln
Array arr
DropDownList drop

66】
js調試eval時,
如果console出來的是黑體的字符串,那麼就要解析爲對象。
如果需要的是data[]則要eval,且傳來的對象要有[]號

67】c# &&和&的區別。如果有dt不存在。則
if(dt!=null && dt.Rows.Count>0){}  只判斷dt!=null
if(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)各頁面都繼承: BasePage

75】
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】
數組:
集合:
泛型>>List			
ArrayList
Hashtable
泛型>>Dictionary

86】
        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=abcda
sum1 = sum1.Substring(sum1.IndexOf("a")+1, sum1.IndexOf("a", sum1.IndexOf("a") + 1) - sum1.IndexOf("a")-1);
返回bcd

101】
package不僅能把存儲過程分門別類,而且在package裏可以定義公共的變量/類型

102】
單選框radio分組取決於相同的name 
<input name="Fruit" type="radio">

103】
當頁面載入時執行:
. OnInit
. OnLoad
. Button_Click

104】保存會話狀態
 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 ='1
111】
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("~/");

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章