为什么这样写,vs调试都死机了。解决方案
发布时间:2011-06-24 21:41:51 文章来源:www.iduyao.cn 采编人员:星星草
为什么这样写,vs调试都死机了。。。
private void Form1_Load(object sender, EventArgs e)
{
chart1.Series["Series1"].ChartType = SeriesChartType.Line;
string str="Data Source=WIN-NVQAG2H5CRO\\SQLEXPRESS;Integrated Security=True";
SqlConnection con = new SqlConnection(str);
con.Open();
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "select * from Table_Test";
cmd.Connection = con;
cmd.CommandType = CommandType.Text;
SqlDataReader sdr = cmd.ExecuteReader();
while(sdr.Read())
{
chart1.Series["Series1"].Points.AddXY(sdr[0],sdr[1]);
}
con.Dispose();
}
这个是正常的。
private void Form1_Load(object sender, EventArgs e)
{
chart1.Series["Series1"].ChartType = SeriesChartType.Line;
string str="Data Source=WIN-NVQAG2H5CRO\\SQLEXPRESS;Integrated Security=True";
SqlConnection con = new SqlConnection(str);
con.Open();
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "select * from Table_Test";
cmd.Connection = con;
cmd.CommandType = CommandType.Text;
SqlDataReader sdr = cmd.ExecuteReader();
bool tf =sdr.Read();
while(tf)
{
chart1.Series["Series1"].Points.AddXY(sdr[0],sdr[1]);
}
con.Dispose();
}
请高人指点!
------解决方案--------------------
死循环了。
while(sdr.Read())
{
chart1.Series["Series1"].Points.AddXY(sdr[0],sdr[1]);
}
每次读一行,读到末尾sdr.Read返回false.循环退出。
bool tf =sdr.Read(); //读一行,如果表里有数据。tf为True
while(tf) //一直是True
{
chart1.Series["Series1"].Points.AddXY(sdr[0],sdr[1]); //一直读第一行
}
------解决方案--------------------
bool tf =sdr.Read();
while(tf)
{
chart1.Series["Series1"].Points.AddXY(sdr[0],sdr[1]);
}
con.Dispose();
}
如果 sdr有数据,那么 tf= true;
那么 while(true)
{
dosomething();
}
会一直循环下去。。。。。。这样做是不对的。。
而你第一个例子,
while(sdr.Read())
{
chart1.Series["Series1"].Points.AddXY(sdr[0],sdr[1]);
}
con.Dispose();
}
如果sdr有第一条数据,就读取第一条,并返回true,然后 sdr.read()第二次,读取第二条,如果第二条没有数据,while跳出
------解决方案--------------------
SqlDataReader.Read 没有理解它的含义
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。
其他相似内容:
-
【管理通告】图表区发帖(含广告贴)指南v1.4
帖子中,请尽量不要使用感叹号,谢谢
0:如果你使用CSDN自带的搜索功能搜不到有用的信息,那...
-
水晶报表 提示“您请求的报表需要更多信息”问题
每次进入水晶报表,都要要求输入密码,这个问题怎么解决??
后台代码如下:
//已连接数...
-
ASP.NET中在调用水晶报表的打印做客户端打印,不要显示打印设置对话框
向大家请教一个水晶报表Web打印的问题,问题的描述如下:
A...
-
reportviewer的具体用法
各位前辈:
小弟我用vs2008的reportviewer控件做报表,但遇到一个"无法显示子报表"的问题。
从昨晚...
-
Rdlc 页眉页脚问题
因为页眉无法直接使用数据源
所以先在主体放了个文本框textbox主体 =First(Fields!相关人.Value) 然后隐...
-
新手求助水晶报表连接
C#
前台代码:
HTML code
<CR:CrystalReportViewer ID="crOrder" runat="server" AutoDataBind="True"...
-
【分享】水晶报表组内分页
本文为:http://topic.csdn.net/u/20110824/21/60f3c6d5-ae0a-454f-989a-984e20f0a7a7.html所作。
命题...
-
VS2010 怎么编辑rpt文件
版本升级了 好像水晶报表的格式也变了
现在rpt格式没有在VS2010里面注册 不能打开来编辑
求怎么打...
-
【水晶报表内功心法】--序言
这是一篇序言,并没有技术性内容,如果你有时间,可以看一下。
最近的一年多,因为生活比较平稳,我开始恢复...
-
? 水晶报表中分组数据分栏显示但一页中可存多个组的问题
各路高手,现将我的问题阐述如下:
图上半部分
图下半部分为
现在遇到的问...