MySqlDataReader NullReferenceException after update

本文关键字:update after NullReferenceException MySqlDataReader | 更新日期: 2023-09-27 18:32:35

当我

在数据库中插入或更新某些内容后,当我使用MySqlDataReader时,我得到一个System.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 – 对象引用未设置为 对象的实例。

Row 45:    using (MySqlDataReader dr = cmd.ExecuteReader())
Row 46:    {
Row 47 >>>:     while (dr.Read())
Row 48:         {
Row 49:              //....

[NullReferenceException:对象引用未设置为实例 对象。 zs_test。Page_Load(对象发送器,事件参数 e) 在 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

MySqlDataReader NullReferenceException after update

在从 SqlDataReader 读取数据之前使用 if(dr.HasRows) 以避免 System.NullReferenceException – 对象引用未设置为对象的实例。

好吧,我发现了错误。

是这样一句话:

                comm.Cancel();

它不应该在那里。愚蠢的错误。