c整理學(xué)習(xí)
發(fā)布時間:2020-09-13 來源: 精準扶貧 點擊:
C #篇:
1 、目標平臺得選擇 64 位操作系統(tǒng)在編譯 VS里得程序時,根據(jù)需要設(shè)置項目屬性得“目標平臺”為 x86。如果設(shè)置為 AnyCPU,則在VS 2005 里面就是不能“編輯并繼續(xù)”得。
—-在選擇 x86 與 AnyCPU都可以在32 位操作系統(tǒng)上使用。
——選擇x86在 64 位服務(wù)器上運行,可能會造成類庫無法加載得問題。此問題在后文 IIS 經(jīng)驗中解釋。
2 、取 DataTable 或者Da taGrid View 里面值得兩種常用方法: dt、Rows[i]、Cells[”ID”]、Value、ToString(); dt、Rows[0][”Name"]、ToString(); 前者需要從 Value 中取值,使用起來不就是太方便.后者且不能加 Value。
——所有得中括號中都可以使用序號(從 0 開始)或就是字段名(列名、行名)
3 、如果沒有使用Linq (一直都用得2、0 框架„„), 可以使行 用此法來寫執(zhí)行 S QL. 如: string strSQL = string、Format("Insert table_1 values("{0}', "{1}',{2},{3})" 如果就是varchar 類型,必須使用'';如果就是 int,目前發(fā)現(xiàn)既可使用’"也可以不使用,往往寫腳本,嫌麻煩,就都帶上了"',貌似執(zhí)行上不會有問題,但不知道性能會不會有所下降.如果有知道得朋友請在評論區(qū)說下咯。
——有朋友評論說這個容易被注入式攻擊。查了下避免注入式攻擊得方法:1、使用存儲過程;2、參數(shù)化 SQL 語句。
——以下就是使用參數(shù)化 SQL 語句得方式:
Sqlmand mand = new Sqlmand(”select * from UserInfo where sex=sex and age>age”, connection);
。觪lParameter parameter = new SqlParameter(”age", SqlDbType、Int);//注意UserInfo 表里age字段就是 int類型得
parameter、Value = 30;
mand、Parameters、Add(parameter);//添加參數(shù)
SqlDataAdapter adapter = new SqlDat(yī)aAdapter(mand);
。础LL 引用了,但就是在代碼里面還就是無法調(diào)用。
嘗試在 DLL 得屬性里面設(shè)置使用特定版本為 False。
5 、類庫里得方法在調(diào)用得時候,如何讓方法上面顯示自定義說明? 勾選一下項目:屬性——生成—-XML 文檔文件
-—使用類庫得時候,把對應(yīng)得 XML 也拷貝得相同目錄,這樣會在VS中瞧到類庫函數(shù)得自定義說明.前提就是代碼里面使用“///”生成注釋.
6 、博友分享:VS2010 在新建、net 4、0項目時,經(jīng)常會默認一個Clent Profi le得東東, 經(jīng)常出現(xiàn)問題。。。切換為標準框架即可。
VS2005 不存在這個問題,VS2013 好像也不存在這個問題。
7 、未能加載程序集 這個問題得范疇過于龐大,能夠造成這方面問題得原因可能有很多,我記得比較分散,后面找到了陸續(xù)補充。
。ǎ)版本不匹配。
。ǎ)類庫生成 x86 還就是x64 還就是 AnyCPU,最好能夠做到目標平臺保持一致。
。3)兩個項目引用路徑不同,或生成個路徑不同。
8 、* ** 、dll 標記為系統(tǒng)必備,必須對其進行強簽名。
。1)首先,參考這個地方.; (2)其次,出現(xiàn)這個問題,很有可能就是因為兩個項目調(diào)用了相同得 DLL,但就是兩個 DLL 版本不同,需要使這兩個版本相同即可。
9 、如何把Con sol e程序修改為Wi nForm 程序。
。1)修改 Program、cs,按照 Winform 程序得方式來修改即可。
。ǎ玻┬薷膽(yīng)用程序得屬性,在應(yīng)用程序—-輸出類型中修改為 Windows 應(yīng)用程序.
10 、Da ta Gri dVi ew在使用其單擊、雙擊事件時,如果需要用 使用 Row In dex, 需要判斷其就是否小于 0 (表頭), 否則會報錯。
1 1、當多個窗體都設(shè)置了 To pMost, 則只有最先設(shè)置得窗體在頂層。
1 2、了 引用了 D LL ,但就是編譯得時候還就是提示沒有找到命名空間. 背景:這個問題很坑,很難發(fā)現(xiàn)問題所在。如一個解決方案中有項目A,生成類庫,testA、dll;還有項目 B,生成類庫,testB、dll。如果項目 B 得程序集名稱與默認命名空間設(shè)置成了 testA,則編譯不會報錯,但就是您這時候想調(diào)用 testB中得方法時,會發(fā)現(xiàn)根本找不到,全就是 testA得方法!
解決辦法:右鍵查瞧項目(也有可能就是相關(guān)項目)得程序集名稱與默認命名空間。就是否與類庫名稱一致。
13 、如何修改 VS2008 轉(zhuǎn)化后得項目為 200 5版。
如上圖:修改第一行 Format Version 為9、00、修改第二行為Visual Studio 2005。
14 、 Da taG ridVi ew 時間格式設(shè)置 dataGridView1、Columns[n]、DefaultCellStyle、Format = ”yyyy-MM-dd”; 15 、當前不會命中斷點。源代碼與原始版本不同問題得解決方法 坑到爆得問題來了……這個問題出現(xiàn)大多就是因為混亂得項目引用。以下提供幾個可能有用得解決方案: 方案一:在VS 菜單得生成中,選擇“清理解決方案",然后重新生成解決方案。
方案二:實際上有比這個辦法更好得辦法,就就是將出問題得文件用 notepad 打開,然后另存為 Unicode 編碼,覆蓋原來得文件。
方案三:通過重新格式化出問題得源文件亦可以解決,即在 VS2005 中選擇 “編輯”-—〉“高級”——〉“設(shè)置選定內(nèi)容得格式”. 以上三個方案參考自:
實際上我都用了,沒用!
最后解決辦法得: 根據(jù)分析,以及這篇文章得內(nèi)容,出現(xiàn)此問題就是因為我直接引用了DLL,而不就是直接引用項目。DLL還未重新編譯得時候,直接運行了程序,則造成 DLL內(nèi)容還沒有更新,調(diào)試無法運行到斷點。
1 6、fl oat(yī) 、dou ble 與 與 d ecimal 得區(qū)別 #region float 單精度浮點 32bit, double 雙精度浮點64bit, decimal就是高精度 128bit,浮點型。
float double 就是 基本類型(primitive type),decimal 不就是。
float 有效數(shù)字 7 位,范圍
±1、5 × 10E−45 to ±3、4 × 10E38 double 有效數(shù)字 15/16 位,范圍 ±5、0 × 10 E−324 to ±1、7 × 10E308
decimal 有效數(shù)字 28/29 位,范圍 ±1、0 × 10E−28 to ±7、9 × 10E28( E —- 下接幾次方)
。鋏cimal 得有效位數(shù)很大,達到了128位,但就是表示得數(shù)據(jù)范圍卻比 float 與 double 類型小. 使用得時候會對計算時得性能有影響。
常數(shù)寫法:
float f = 12、3F;
(帶 F)
double x=12、3;
。ú粠Ь途褪 double)
decimal d = 12、30M; (帶M)
浮點數(shù)運算會有精度損失問題,有精度損失時程序不會報告,要程序員自己注意。
#endregion 17 、如何清空Str ingBuilder
。薄ⅲ襡move 例:
StringBuilder val = new StringBuilder();
val、Append(”、、、、");
。鯽l、Remove(0,val、Length);//清空
2、Replace
StringBuilder val = new StringBuilder();
val、Append("、、、、");
val、Replace(val、ToString(), "”);//清空
3、Length
StringBuilder val = new StringBuilder();
val、Append("、、、、");
val、Length = 0;//清空經(jīng)過測試第三種效率更高,推薦用第三種!
SQL 篇 1 、有關(guān) SQL 中 中 Joi n得問題。
當 left join得那個表(子表),on得字段存在兩條,那么查詢出來得結(jié)果會分為兩條。
—-所以對于子表內(nèi)容掌控不準確,很可能會查詢出不符合需求得結(jié)果。
例子: (1)兩個表得內(nèi)容就是
。2)left join 得結(jié)果
以 2、同一張表可以 Left Joi n兩次
-—比如主表 A 為大掃除任務(wù)安排表,其中包含“掃地得學(xué)生 ID",“倒垃圾得學(xué)生ID”,可以通過兩次關(guān)聯(lián)學(xué)生信息表B,來在主表中查詢出學(xué)生姓名. ——以下例子與上面得舉例無關(guān)。僅供參考。
3 、Union 得時候,如果對應(yīng)得兩個字段類型不同,必須進行轉(zhuǎn)換, 否則會出錯.
如上圖 convert。注意使用 union all 可以顯著提高速度,這樣得話,不會對查詢結(jié)果進行排序。
4 、S QL
Serv er 中鏈接服務(wù)器得使用方法 應(yīng)用背景:應(yīng)用軟件包含多個數(shù)據(jù)庫服務(wù)器,但就是某個查詢需要從兩個數(shù)據(jù)庫服務(wù)器得數(shù)據(jù)庫中查詢數(shù)據(jù)得。
使用說明:
(1)添加一個鏈接服務(wù)器。
。鍃ec sp_addlinkedserver server=’serverontest’,provider="sqloledb’,srvproduct="’,datasrc="101、123、10、112'
(2)添加登錄方式 EXEC sp_addlinkedsrvlogin rmtsrvname = "serverontest’, useself = ’false', locallogin = "sa", rmtuser = 'sa’, rmtpassword = "passwordofsa’ (3)以上兩個語句中,server 為服務(wù)器得別名,datasrc為要鏈接得目標數(shù)據(jù)庫得連接串,rmtsrvname 為別名,locallogin為本地登錄得用戶名,rmtuser 與rmtpassword為要鏈接得目標數(shù)據(jù)庫得登錄用戶名與密碼。
。4)添加完鏈接服務(wù)器之后,可以通過 select * from sys、linked_logins 與 select * from sys、servers 來查瞧已經(jīng)添加得鏈接服務(wù)器與登錄角色。
(5)添加完鏈接服務(wù)器后,使用 select * from 別名、庫名、dbo、表名 來對其中得數(shù)據(jù)進行查詢。
(6)刪除鏈接服務(wù)器登錄映射與鏈接服務(wù)器得方法:
exec sp_droplinkedsrvlogin "serverontest’ ,"sa’
exec sp_dropserver "serverontest’
思想以及設(shè)計理念:
。薄⑦壿媱h除與物理刪除得概念? 物理刪除時真正得刪除了,邏輯刪除還保留數(shù)據(jù)在數(shù)據(jù)庫中得位置,但就是修改其刪除標志為已刪除狀態(tài)(貌似這個在大學(xué)里面就學(xué)了„„)
2 、在 UI 層( 用戶操作界面),如果出錯了, 或者操作失敗了, 應(yīng)該提醒用戶下一步應(yīng)該做什么. 如:當用戶進行操作 B 得時候,需要先開啟選項 A。設(shè)當前選項 A 為關(guān)閉狀態(tài),用戶進行操作 B,此時應(yīng)提示:“操作失敗,選項 A 未啟用,請到 XXX 設(shè)置中開啟選項A"。在某些應(yīng)用中,甚至可以增加直接跳轉(zhuǎn)到設(shè)置得地方,或者直接修改設(shè)置。根據(jù)需要而定。
——提醒用戶改做什么,個人認為就是應(yīng)該得,體現(xiàn)友好度。但就是不應(yīng)該把代碼中具體得異常暴露出來,具體異常應(yīng)該記錄日志,并使用異常編碼,在文檔中、代碼中管理起來。
3 、當可以確定兩份程序完全一致,但就是怎么運行結(jié)果都不一致,先檢查配置文件就是否不同。
4 、如何查瞧進程得端口號. 命令行輸入:netstat —ano 5 、如何使用命令行安裝 Win dows 服務(wù) %SystemRoot%\Microsoft、NET\Framework\v2、0、50727\installutil、exe E:\myService\ServiceTest、exe
Net Start ServiceTest sc config ServiceTest start= auto 前提就是,您所要安裝得服務(wù),所在路徑不能包含空格.如常見得 Program Files,就會造成安裝失敗. 如果安裝得時候,命令行窗口一閃而過沒有瞧到什么情況,可以自行在命令提示符里面執(zhí)行以上得腳本以查瞧報錯。或者在結(jié)尾加上 pause
P S:一個一直支撐我得寶貴經(jīng)驗:
哈佛有一個著名得理論:人得差別在于業(yè)余時間,而一個人得命運決定于晚上8點到 10 點之間。每晚抽出 2 個小時得時間用來閱讀、進修、思考或參加有意得演講、討論,您會發(fā)現(xiàn),您得人生正在發(fā)生改變,堅持數(shù)年之后,成功會向您招手。
相關(guān)熱詞搜索:整理 學(xué)習(xí)
熱點文章閱讀