首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更新后的MySqlDataReader NullReferenceException

更新后的MySqlDataReader NullReferenceException
EN

Stack Overflow用户
提问于 2013-09-24 07:06:19
回答 2查看 1K关注 0票数 0

在数据库中插入或更新某些内容之后,当我使用MySqlDataReader时,我会得到一个MySqlDataReader。

这是我的代码:

代码语言:javascript
复制
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

EN

回答 2

Stack Overflow用户

发布于 2013-09-24 07:26:54

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

票数 0
EN

Stack Overflow用户

发布于 2013-09-24 17:22:18

我发现了错误..。

这句话是:

代码语言:javascript
复制
                comm.Cancel();

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18975083

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档