C#中MessageBox输出信息

从数据库查询出一组内容,实现效果是把查询结果元素循环输出到MessageBox中if(reader.HasRows){while(reader.Read()){}}whi... 从数据库查询出一组内容,实现效果是把查询结果元素循环输出到MessageBox中

if (reader.HasRows)
{
while (reader.Read())
{
}
}
while循环中应该怎么写啊?
展开
 我来答
赢桓
2013-06-30 · 超过41用户采纳过TA的回答
知道小有建树答主
回答量:73
采纳率:100%
帮助的人:55.3万
展开全部
int count = 0;
string str_out = string.Empty;
do
{
if (!reader.HasRows)
break;
while (reader.Read())
{
string temp = Convert.ToString(reader["字段名"]);
if (string.IsNullOrEmpty(temp))
continue;
count++;
str_out += temp + "\r\n";
}

MessageBox.Show(str_out);
} while (false);

其实获取个数的话可以用SQL的,查出来之后直接取出值,你说的还要分割字符串是什么意思?没理解,难道你的数据库里面存的航班信息是写在一起的?

更多追问追答
追问
设置计时器方法不错哦,我的意思是在你的基础上
对获取的str_out用split('\n')分割得到一个数组再.Length-1

那意思说SqlDataReader没有提供一个直接的方法获取列中的元素个数
追答

我的意思是用

select count(*) from table_name where clause

table_name 代表表名,clause 代表查询条件,但是如果你要取出具体信息的话就不建议你使用SQL从数据库里面查个数,因为反正你也要遍历的,就没必要再读数据库了,如果你只想知道个数,那么就用SQL的方法,不必遍历所有数据求和,另外,亲,采纳啊别忘了。


另外,不止SQLSERVER没有,Oracle也没有,如果哪位知道怎么通过DataReader看数目,告诉我下 ,调试的时候很苦恼

他花花吐蕊开开7403
2013-06-30 · 超过37用户采纳过TA的回答
知道答主
回答量:383
采纳率:0%
帮助的人:210万
展开全部
可以考虑先保存到变量中,之后用MessageBox显示变量
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
logan_white
2013-06-30 · TA获得超过295个赞
知道小有建树答主
回答量:233
采纳率:0%
帮助的人:140万
展开全部
先定义一个string类型的变量string str_out;
然后用str_out+=每行的数据就行了,注意要加个‘\n’以实现换行
追问
谢谢,但如何获取查询结果中的个数呢,就像图片上显示的,查询出多少个航班?
DataReader有没有方法获取,在不用分割字符串的前提下,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
shensi88
2013-06-30
知道答主
回答量:33
采纳率:0%
帮助的人:14.9万
展开全部
string str;
if (reader.HasRows)
{
while (reader.Read())
{
str+=reader[列名]+"\n"

}
}
messagebox("查询出?个航班+"\n"+str)

思路是这样,手打的,不要照抄
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式