SqlDataReader无法读取无列名字段值?

shuangfeiyan 2007-01-11 05:09:17
SqlDataReader sdr = cmd.ExecuteReader();
string name="", age="",col_name="",mc="";
while (sdr.Read())
{
name = sdr["name"].ToString();
age = sdr["age"].ToString();
col_name = sdr.GetString(3);
mc = sdr.GetString(4);
}

cmd为执行一存储过程,获得如下临时表:

name age (无列名) (无列名)
karl 20 ssss dddd

提示数组索引越界,我将GetString(3)和GetString(4)改为GetString(2)没错误提示.但我现在要用到第三列和第四列中的值,怎么办?有哪位大哥指点一下.在线等待.

...全文
230 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
shuangfeiyan 2007-01-11
  • 打赏
  • 举报
回复
哦,知道怎么搞了,谢谢了!
select name,ZYDM,p=@ppid,m=@MC from Sysobjects,ZY where name='BJ' and ZYMC=@name
YouTuBe 2007-01-11
  • 打赏
  • 举报
回复
不错
shuangfeiyan 2007-01-11
  • 打赏
  • 举报
回复
create proc proc_get_table
@name varchar(80),
@ppid varchar(30) output,
@mc varchar(80) output
with encryption
as
if exists(select * from XX where XXMC=@name)
begin
set @ppid='XXDM'
set @mc='XXMC'
select name,XXDM,@ppid,@MC from sysobjects,XY where name='XY'and XXMC=@name
return
end
else if exists(select * from XY where XXMC=@name)
begin
set @ppid='XXDM'
set @mc='YXSMC'
select name,XXDM,@ppid,@MC from sysobjects,XY where name='XB'AND XXMC=@name
return
end
else if exists(select * from XB where YXSMC=@name)
begin
set @ppid='YXSH'
set @mc='ZYMC'
select name,YXSH,@ppid,@MC from sysobjects,XB where name='ZY'and YXSMC=@name
return
end
else if exists(select * from ZY where ZYMC=@name)
begin
set @ppid='ZYDM'
set @mc='BJMC'
select name,ZYDM,@ppid,@MC from Sysobjects,ZY where name='BJ' and ZYMC=@name
return
end

怎么才能给定那两个无列名字段的字段名?
wzl_1008 2007-01-11
  • 打赏
  • 举报
回复
执行查询获得结果集的时候给他一个字段名好了

2,100

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧