Asp.net 如何将SqlDataReader obejct用作数组?

Asp.net 如何将SqlDataReader obejct用作数组?,asp.net,Asp.net,这听起来可能有点幼稚或愚蠢,但我想知道在像 SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection); rdr.Read(); Response.Write(rdr[1]. ToString()); 如何使用SqlDataReader对象作为数组(rdr[1]),而不进行声明 我想知道的是,接下来发生了什么 Response.Write(rdr[1].ToString()); 既然rdr是一个对象,我们怎么能

这听起来可能有点幼稚或愚蠢,但我想知道在像

SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
rdr.Read();
Response.Write(rdr[1]. ToString());
如何使用
SqlDataReader
对象作为数组
(rdr[1])
,而不进行声明

我想知道的是,接下来发生了什么

Response.Write(rdr[1].ToString());

既然rdr是一个对象,我们怎么能使用方括号呢?

你可以这样做

 Object[] values = new Object[reader.FieldCount];
int fieldCount = reader.GetValues(values);

Console.WriteLine("reader.GetValues retrieved {0} columns.",
    fieldCount);
for (int i = 0; i < fieldCount; i++)
    Console.WriteLine(values[i]);

Console.WriteLine();
Object[]value=新对象[reader.FieldCount];
int fieldCount=reader.GetValues(值);
WriteLine(“reader.GetValues检索到{0}列。”,
现场计数);
对于(int i=0;i
您可以这样做

 Object[] values = new Object[reader.FieldCount];
int fieldCount = reader.GetValues(values);

Console.WriteLine("reader.GetValues retrieved {0} columns.",
    fieldCount);
for (int i = 0; i < fieldCount; i++)
    Console.WriteLine(values[i]);

Console.WriteLine();
Object[]value=新对象[reader.FieldCount];
int fieldCount=reader.GetValues(值);
WriteLine(“reader.GetValues检索到{0}列。”,
现场计数);
对于(int i=0;i
否,因为SqlDataReader是来自SQL Server数据库的一个向前只读行流,所以该行流将在代码中显式循环或在框架实现中隐藏(例如DataTable的Load方法)。因此不能直接将其转换为数组类型。您需要将其转换为列表

听起来,使用一个通用列表,然后将列表作为数组返回是一个不错的选择。比如说,

列表=新列表()


return list.ToArray()

否,因为SqlDataReader是SQL Server数据库中的一个只向前读取的行流,所以该行流将在代码中显式循环或在框架实现中隐藏(例如DataTable的Load方法)。因此不能直接将其转换为数组类型。您需要将其转换为列表

听起来,使用一个通用列表,然后将列表作为数组返回是一个不错的选择。比如说,

列表=新列表()


return list.ToArray()

您正在寻找索引器

请参考链接

索引器是一种语法上的便利 使您能够创建一个类, 结构或该客户端的接口 应用程序可以像服务器一样访问 排列


参考:

您正在寻找索引器

请参考链接

索引器是一种语法上的便利 使您能够创建一个类, 结构或该客户端的接口 应用程序可以像服务器一样访问 排列

参考: