首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

ASP.NET SqlDataReader从数据库中得到了多行数据,该如何分别得到这些数据呀

2013-01-23 
ASP.NET SqlDataReader从数据库中得到了多行数据,该怎么分别得到这些数据呀?我用的NextResult()怎么总是只

ASP.NET SqlDataReader从数据库中得到了多行数据,该怎么分别得到这些数据呀?
我用的NextResult()怎么总是只能得到一行数据呀?


SqlCommand Selectcmd = new SqlCommand("select PackageDetail_Info.Count,Project_Info.Price from PackageDetail_Info,Project_Info where PackageDetail_Info.Project_ID=Project_Info.Project_ID and Package_ID='" + Package_ID + "'", conn);
                    System.Data.SqlClient.SqlDataReader dr = Selectcmd.ExecuteReader();
                    while (dr.Read())
                    {
                        Response.Write("<script language=javascript>alert('int count = dr.GetInt32(0);')</script>");
                        //for (int k = 0; k <= dr.FieldCount;k++ )
                        {
                            //Label2.Text = dr.GetInt32(0).ToString().Trim();
                            //Label3.Text = dr.FieldCount.ToString().Trim();
                            int count = dr.GetInt32(0);
                            Response.Write("<script language=javascript>alert('1')</script>");
                            double Price = dr.GetDouble(1);
                            total = total + count * Price;
                        }
                        if (dr.NextResult())
                        {
                            //dr.NextResult();
                            dr.Close();
                        }
                        else


                        {
                            dr.Close();
                            break;
                        }
                            total = total * double.Parse(Discount);
                    }


[解决办法]
把这段代码注释掉吧
if (dr.NextResult())
                        {
                            //dr.NextResult();
                            dr.Close();
                        }
                        else
                        {
                            dr.Close();
                            break;
                        }
[解决办法]
引用:
把这段代码注释掉吧
if (dr.NextResult())
                        {
                            //dr.NextResult();
                            dr.Close();
                        }
           ……


同意。

不管怎么样,你都执行 dr.Close()。还想读什么“更多数据行”?

另外,使用从DbDataReader继承来的Read()方法就行了,不要使用NextResult方法。

热点排行