程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> 項目錯誤列表之三

項目錯誤列表之三

編輯:.NET實例教程
 1.  前幾天的一個錯誤讓我郁悶了好一陣子,我往表格裡手動修改測試數據(DBMS:SQL Server 2000):數據庫有一個字段允許為空,我需要將該字段不為空的記錄查出來,由於我的Insert語句將""插入數據庫,導致這個字段為空白,卻不是我所期望的<NULL>。那麼我寫在查詢語句裡面的,**** is not null,達不到理想效果,於是,我手動往裡面輸入<NULL>,當時只覺得很別扭,還沒意識到錯誤。

    時間緊,我的代碼在老大那測試沒有問題(他連的不是我的數據庫),而我也漸漸將這件事情丟到了一邊。一兩天後,新的任務來,需要在前面的基礎上,添加新的功能,結果我導出查,怎麼都找不出原因為什麼我這邊不該顯示的顯示出來了。我後來將問題定位到這張表格上,沒道理啊!所有字段都為<NULL>,為什麼一個都查不出來。找來老大,陳述我的問題,他在我展示表格數據的時候,瞄了一眼,搶過鼠標,在字段上點了兩下,然後問我:“看出毛病沒?”

    我搖搖頭,他又點了點其他為<NULL>的字段,我才發現,當字段為<NULL>時,鼠標點上去,<NULL>會消失,而我輸入的"<NULL>"不會。這時,我才回憶起前幾天的情況——這個字段保存的值是"<NULL>"而不是NULL。

    “Ctrl+0” 這就是讓字段為NULL的方法。

    同樣,還有一個值得注意的問題是,如果你不小心將換行符,插入了數據庫。c#裡面是"\r\n"轉到sql腳本中,成了char(13)+char(10)(有興趣的朋友可以試一下,執行這條語句“insert into user(username)  values(''a'' + char(13) + char(10) + ''b'')”),然後,你到預覽表格時候,將光標移動到該字段,摁上下方向鍵,就可以看到a與b交替出現了(數據庫得有user(username)表)。

    而如果你將換行符接在字符串末尾,不注意的話,將始終得不到匹配的效果。

    2. 日期格式化:我們經常會碰到這樣一個問題,數據庫保存的是DateTime對象,即保存了日期同時保存了時間,而我們顯示在DataGrid時,需要將時間去除,通常的做法是,在綁定時,ItemDataBind事件中,將該字段Convert.ToDataTime(),然後再ToString("yyyy-MM-dd"),這樣比較麻煩,你要做兩步,首先要判斷它為非頁眉和非頁尾:

if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem)

而後做上述處理。而控件已經替我們做了這一步,只需要在控件中添加一個屬性即可:

<ASP:BoundColumn DataFIEld="RecTime" HeaderText="到貨日期" DataFormatString="{0:yyyy-MM-dd}"></ASP:BoundColumn>

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved