C# 从数据读取器填充arraylist

C# 从数据读取器填充arraylist,c#,asp.net,arraylist,sqldatareader,C#,Asp.net,Arraylist,Sqldatareader,我对如何从数据读取器填充数组列表有问题 string queryDTL = " SELECT * FROM tbl1 "; connection.Connect(); cmd = new OracleCommand(queryDTL, connection.getConnection()); dr_DTL = qcmd2.ExecuteReader(); ArrayList RecordsInfo = new ArrayList(); while (dr_

我对如何从数据读取器填充数组列表有问题

string queryDTL = " SELECT * FROM tbl1  ";                 

connection.Connect();
cmd = new OracleCommand(queryDTL, connection.getConnection());
dr_DTL = qcmd2.ExecuteReader();

ArrayList RecordsInfo = new ArrayList();
while (dr_DTL.Read())
{
    RecordsInfo = dr_DTL["number"].ToString();
}   
问题是datareader除了数字之外还包含很多信息,但我不知道如何将它们放在正确的位置


我仍然是这方面的初学者,抱歉,如果这听起来很愚蠢。

您好,您必须执行
RecordInfo.Add
,目前您正在重新分配整个arraylist


此外,如果您检索的列太多,只需查询所需的列,在您的示例中,
number
,而不是简单地
SELECT*

您不能将
字符串
放入
数组列表中。您必须将字符串添加到列表中。
例:

如果需要字符串列表,最好的方法是使用
list
。 例:

List RecordsInfo=new List();
while(dr_DTL.Read())
{    
RecordsInfo.Add(dr_DTL[“number”].ToString());
}    

我认为使用DataTable和适配器会更好:

    SqlConnection Conn = new SqlConnection(MyConnectionString);
    Conn.Open();

    SqlDataAdapter Adapter = new SqlDataAdapter("Select * from Employees", Conn);

    DataTable Employees = new DataTable();

    Adapter.Fill(Employees);

    GridView1.DataSource = Employees;
    GridView1.DataBind();

当然,在您的情况下,请使用Oracle版本的对象。

您为什么使用
ArrayList
而不是
列表
?如果您对更多数据感兴趣,您希望如何存储数据?string queryDTL=“从tbl1中选择号码、姓名、电话”;connection.Connect();cmd=newOracleCommand(queryDTL,connection.getConnection());dr_DTL=qcmd2.ExecuteReader();ArrayList RecordsInfo=新的ArrayList();而(dr_DTL.Read(){RecordsInfo=dr_DTL[“number”].ToString();RecordsInfo=dr_DTL[“name”].ToString();RecordsInfo=dr_DTL[“phone”].ToString()}你的意思是这样吗??它仍然不起作用
List<String> RecordsInfo = new List<String>(); 
while (dr_DTL.Read()) 
{    
    RecordsInfo.Add(dr_DTL["number"].ToString()); 
}    
    SqlConnection Conn = new SqlConnection(MyConnectionString);
    Conn.Open();

    SqlDataAdapter Adapter = new SqlDataAdapter("Select * from Employees", Conn);

    DataTable Employees = new DataTable();

    Adapter.Fill(Employees);

    GridView1.DataSource = Employees;
    GridView1.DataBind();