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();