C#中MessageBox输出信息
从数据库查询出一组内容,实现效果是把查询结果元素循环输出到MessageBox中if(reader.HasRows){while(reader.Read()){}}whi...
从数据库查询出一组内容,实现效果是把查询结果元素循环输出到MessageBox中
if (reader.HasRows)
{
while (reader.Read())
{
}
}
while循环中应该怎么写啊? 展开
if (reader.HasRows)
{
while (reader.Read())
{
}
}
while循环中应该怎么写啊? 展开
4个回答
展开全部
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看数目,告诉我下 ,调试的时候很苦恼
展开全部
可以考虑先保存到变量中,之后用MessageBox显示变量
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
先定义一个string类型的变量string str_out;
然后用str_out+=每行的数据就行了,注意要加个‘\n’以实现换行
然后用str_out+=每行的数据就行了,注意要加个‘\n’以实现换行
追问
谢谢,但如何获取查询结果中的个数呢,就像图片上显示的,查询出多少个航班?
DataReader有没有方法获取,在不用分割字符串的前提下,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
string str;
if (reader.HasRows)
{
while (reader.Read())
{
str+=reader[列名]+"\n"
}
}
messagebox("查询出?个航班+"\n"+str)
思路是这样,手打的,不要照抄
if (reader.HasRows)
{
while (reader.Read())
{
str+=reader[列名]+"\n"
}
}
messagebox("查询出?个航班+"\n"+str)
思路是这样,手打的,不要照抄
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询