我遇到如何从数据读取器填充数组列表的问题
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包含了除数字以外的大量信息,但我不知道如何将它们放在正确的位置。
如果这听起来很愚蠢,我仍然是对不起的初学者。
答案 0 :(得分:2)
您无法将String
放入ArrayList
。您必须将该字符串添加到列表中。
防爆。 :
ArrayList RecordsInfo = new ArrayList();
while (dr_DTL.Read())
{
RecordsInfo.Add(dr_DTL["number"].ToString());
}
如果您想要一个String列表,最好的方法是使用List<String>
。
防爆。 :
List<String> RecordsInfo = new List<String>();
while (dr_DTL.Read())
{
RecordsInfo.Add(dr_DTL["number"].ToString());
}
答案 1 :(得分:0)
你好,你必须做RecordInfo.Add
,目前你正在重新分配整个arraylist ......
此外,如果您要检索的列太多,只需查询您需要的列,在您的情况number
中,而不仅仅是SELECT *
...
答案 2 :(得分:0)
我认为使用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版本。