C# 更新后的MySqlDataReader NullReferenceException
在数据库中插入或更新某些内容后,当我使用MySqlDataReader时,会出现System.NullReferenceException 这是我的密码:C# 更新后的MySqlDataReader NullReferenceException,c#,mysql,asp.net,mysqlconnection,mysqldatareader,C#,Mysql,Asp.net,Mysqlconnection,Mysqldatareader,在数据库中插入或更新某些内容后,当我使用MySqlDataReader时,会出现System.NullReferenceException 这是我的密码: protected void Page_Load(object sender, EventArgs e) { using (var conn = new MySqlConnection(ConfigurationManager.ConnectionStrings["mysqlconn"].ConnectionString))
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();
}
}
}
}
[NullReferenceException:对象引用未设置为
对象。]zs_测试。页面加载(对象发送方,事件参数e)在
c:\Users\JennyJ\skydrive\www\wwwroot\zs test.aspx.cs:47System.Web.Util.CallEventHandlerDelegateProxy.Callback(对象发送方, EventArgs e)+51 System.Web.UI.Control.OnLoad(EventArgs e)+92
System.Web.UI.Control.LoadRecursive()+54
System.Web.UI.Page.ProcessRequestMain(布尔值 IncludeStages前同步点,布尔值IncludeStages后同步点) +772
在从SqlDataReader读取数据之前,请使用
if(dr.HasRows)
,以避免System.NullReferenceException–对象引用未设置为对象的实例。嗯,我发现了错误
Row 45: using (MySqlDataReader dr = cmd.ExecuteReader())
Row 46: {
Row 47 >>>: while (dr.Read())
Row 48: {
Row 49: //....
这是一句话:
comm.Cancel();
它不应该在那里。愚蠢的错误 您确定您的
zs_客户
表不是空的吗?因为您正在插入zs_订单
表格。。而3
是一个int
,像Convert那样使用它是没有意义的。ToInt32(3)
是的,如果我不先更新任何内容,它可以正常工作。例如,如果我创建了一个客户,然后导航到另一个包含客户列表的Web表单,也会出现错误。连接到数据库时似乎发生了一些问题。如果我添加这个,我将得到相同的错误。有匹配的记录,但如果我访问dr对象,我将获得NullReferenceExection。如果您正在页面上执行另一个服务器事件,请在if(!IsPostBack){}块中写入上述代码。