2013-01-05 66 views
0

我有這樣的ASPX代碼:空引用異常是由用戶代碼信息未處理

<form name="AddArticle" action="Register.aspx" method="post"> 
<b> 
title :<br /></b><input id="Text1" type="text" name="ArticleTitle"/><p></p> 
<b> 

date: <br /></b><input id="Text2" type="text" name="ArticleDate"/><p></p> 

<b> 
author : <br /></b><input id="Text3" type="text" name="ArticleAuthor"/><p></p> 
<b> 
text: <br /></b> <textarea rows="10" cols="60" name="ArticleBody"></textarea> 
<br /> 
<input id="Reset1" type="reset" value="clean" /> 
<input id="Submit1" type="submit" value="send" /></form> 

而這個C#代碼:

using System; 
using System.Collections; 
using System.Configuration; 
using System.Data; 
using System.Linq; 
using System.Web; 
using System.Web.Security; 
using System.Web.UI; 
using System.Web.UI.HtmlControls; 
using System.Web.UI.WebControls; 
using System.Web.UI.WebControls.WebParts; 
using System.Xml.Linq; 
using System.Data.OleDb; 

public partial class Register : System.Web.UI.Page 
{ 

    protected void Page_Load(object sender, EventArgs e) 
    { 
     string ArticleTitle, ArticleBody, ArticleAuthor, ArticleDate; 
     if (IsPostBack ==false) 
     { 
      ArticleTitle = Request.Form["ArticleTitle"].ToString(); 
      ArticleDate = Request.Form["ArticleDate"].ToString(); 
      ArticleAuthor = Request.Form["ArticleAuthor"].ToString(); 
      ArticleBody = Request.Form["ArticleBody"].ToString(); 


      string dpath = Server.MapPath(@"App_Data") + "/MySite.mdb"; 
      string connectionstring = @"Data source='" + dpath + "';Provider='Microsoft.Jet.OLEDB.4.0';"; 
      OleDbConnection con = new OleDbConnection(connectionstring); 
      string QuaryString = string.Format("insert into tblArticles(ArticleTitle, PostDate) values ('{0}','{1}')", ArticleTitle, ArticleDate); 
      OleDbCommand cmd = new OleDbCommand(QuaryString, con); 
      con.Open(); 
      cmd.ExecuteNonQuery(); 
     } 
     else 
     { 

     } 
    } 


} 

這裏的問題是,我得到這個錯誤信息:

System.NullReferenceException未被用戶代碼處理
Source =「App_Web_cebzruil」StackTrace:

在這些線路

ArticleTitle = Request.Form["ArticleTitle"].ToString(); 
ArticleDate = Request.Form["ArticleDate"].ToString(); 
ArticleAuthor = Request.Form["ArticleAuthor"].ToString(); 
ArticleBody = Request.Form["ArticleBody"].ToString(); 

我的問題是如何解決這個問題?

回答

2

可能表單值爲空。

嘗試插入一個簡單的if語句:

if(Request.Form["ArticleTitle"]!=null) 
ArticleTitle = Request.Form["ArticleTitle"].ToString(); 

您還可以使用try和catch,但在這種情況下

try 
{ 
    ArticleTitle = Request.Form["ArticleTitle"].ToString(); 
} 
catch(NullReferenceException ex) 
{ 
} 
+0

謝謝你下不推薦,你的請求能告訴我我該怎麼使用try&catch請求做它? –

+0

我編輯了我的帖子。更多關於嘗試和趕上,你可以在這裏閱讀: http://msdn.microsoft.com/en-us/library/0yd65esw(v=vs.80).aspx –

相關問題