在数据库中插入或更新某些内容之后,当我使用MySqlDataReader时,我会得到一个MySqlDataReader。
这是我的代码:
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 -对象引用没有设置为对象的实例。 第45行:使用(MySqlDataReader dr = cmd.ExecuteReader())第46行:{ Row 47 >>>:while (dr.Read()) Row 48:{ Row 49: //. NullReferenceException:对象引用没有设置为对象的实例。c:\Users\JennyJ\skydrive\www\wwwroot\zs-test.aspx.cs:47中的zs_test.Page_Load(对象发送方,EventArgs e) System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object发件人,EventArgs e) +51 System.Web.UI.Control.OnLoad(EventArgs e) +92 System.Web.UI.Control.LoadRecursive() +54 System.Web.UI.Page.ProcessRequestMain(布尔型includeStagesBeforeAsyncPoint,布尔型includeStagesAfterAsyncPoint) +772
发布于 2013-09-24 07:26:54
在从if(dr.HasRows)读取数据之前使用SqlDataReader,以避免System.NullReferenceException对象引用没有设置为对象的实例。
发布于 2013-09-24 17:22:18
我发现了错误..。
这句话是:
comm.Cancel();它不应该在那里。愚蠢的错误。
https://stackoverflow.com/questions/18975083
复制相似问题