當我在插入或更新數據庫中的某些內容後使用MySqlDataReader時,出現System.NullReferenceException異常。MySqlDataReader更新後的NullReferenceException
這裏是我的代碼:
protected void Page_Load(object sender, EventArgs e)
{
using (var conn = new MySqlConnection(ConfigurationManager.ConnectionStrings["mysqlconn"].ConnectionString))
{
conn.Open();
using (MySqlCommand comm = conn.CreateCommand())
{
comm.CommandText = "UPDATE zs_orders SET orderNo = @orderNo, firstSent = @firstSent WHERE ID = @id";
comm.Parameters.AddWithValue("orderNo", "dasda");
comm.Parameters.AddWithValue("firstSent", DateTime.Now);
comm.Parameters.AddWithValue("id", Convert.ToInt32(3));
comm.ExecuteNonQuery();
comm.Cancel();
comm.Dispose();
}
conn.Close();
}
using (var myConn = new MySqlConnection(ConfigurationManager.ConnectionStrings["mysqlconn"].ConnectionString))
{
myConn.Open();
using (MySqlCommand cmd = new MySqlCommand("select * from zs_customers;", myConn))
{
using (MySqlDataReader dr = cmd.ExecuteReader())
{
while (dr.Read()) // << Error
{
//....
}
dr.Close();
myConn.Close();
}
}
}
}
這裏是錯誤:
System.NullReferenceException – Object reference not set to an instance of an object.
Row 45: using (MySqlDataReader dr = cmd.ExecuteReader()) Row 46: { Row 47 >>>: while (dr.Read()) Row 48: { Row 49: //....
[NullReferenceException: Object reference not set to an instance of an object.] zs_test.Page_Load(Object sender, EventArgs e) in c:\Users\JennyJ\skydrive\www\wwwroot\zs-test.aspx.cs:47
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +51 System.Web.UI.Control.OnLoad(EventArgs e) +92
System.Web.UI.Control.LoadRecursive() +54
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +772
你確定你的'zs_customers'表不是空的嗎?因爲你插入'zs_orders'表..而'3'是一個'int',所以沒有必要像'Convert.ToInt32(3)' –
一樣使用它。如果我沒有更新任何東西,它可以正常工作。 – JennieJ
例如,如果我創建了一個客戶,然後導航到另一個具有客戶列表的Webform,該錯誤也會出現。這似乎與連接到數據庫發生了一些事情。 – JennieJ