首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

VS2005 (C#) 專案除錯問題解決方案集錦(一)

     編輯:關於C語言

常見錯誤與解決方案

1. 偵測到潛在危險的 Request.Form 值

原因:

  • 提交資料的頁面或 web.config 中未正確設定 validateRequest 屬性
  • HTML 中寫了兩個 <form> 標籤

解決:

方案一:在 .aspx 檔案頭加入:<%@ Page ValidateRequest="false" %>

方案二:修改 web.config:

<configuration>
  <system.web>
    <pages validateRequest="false" />
  </system.web>
</configuration>

因 validateRequest 預設為 true,設為 false 即可。

2. 「在沒有任何資料時進行無效的讀取嘗試」解決辦法

原因:SqlDataReader 無資料記錄,但未做記錄判斷處理,回傳空值。

解決:加上判斷:if (reader.Read()) { TextName.Text = reader["FieldName"].ToString(); }

3. 資料為空,無法對空值呼叫此方法或屬性

原因:物件為 null 時呼叫方法 (如 ToString()) 會出錯,常見於資料庫欄位值為空,或 GridView 等資料控件。

解決:建議做 NULL 處理。

4. 閱讀器關閉時 FieldCount 的嘗試無效

原因:使用 SqlDataReader 繫結資料後,將 Connection 物件 Close()。

範例錯誤代碼:

public SqlDataReader GetSomething()
{
    conn.Open();
    SqlDataReader reader = sqlcmd.ExecuteReader(CommandBehavior.CloseConnection);
    conn.Close(); // 錯誤發生處
    return reader;
}

解決:若使用此方法,需在呼叫函式中關閉 Reader,Connection 才會自動關閉。若使用 SqlDataAdapter 和 DataSet,請移除顯式關閉 Connection 的呼叫,或在 finally 區塊中呼叫。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved