关于arraylist和数据库读取
大家好,我使用arraylist从数据库中获取某列值,但是数据库中的元素赋值给arraylist的时候只能是先转换为string么?
代码如下:
string str_orconn = "Data Source = ORCL;User ID=scott;Password=z19881014";
string str_orcommand = "select * from 数据库示例1";
OracleConnection orconn = new OracleConnection(str_orconn);
orconn.Open();
OracleCommand orcmd = new OracleCommand(str_orcommand, orconn);
OracleDataReader ordr = orcmd.ExecuteReader();
while (ordr.Read())
{
i_arr.Add(new string(ordr["NAME"].ToString().ToCharArray()));
i_arr_int.Add(new string(ordr["ID"].ToString().ToCharArray()));
}
ordr.Close();
orconn.Close();
ID_NO_str = (string[])i_arr.ToArray(typeof(string)); //Arraylist转换为
ID_NO_int = (int[])i_arr_int.ToArray(typeof(Int32)); //i_arr_int转换为整数型;
第一个问题:
“i_arr.Add(new string(ordr["NAME"].ToString().ToCharArray()));”只能是先转换为string的形式么?
比如我“ID”其实是int类型的,但是还是要先转换为string;
第二个问题:
“ID_NO_int = (int[])i_arr_int.ToArray(typeof(Int32)); //i_arr_int转换为整数型;”这个从字符串转换成数组总是不成功,提醒“源数组中至少有一个元素无法被向下转换到目标数组类型。”,不太明白是为啥,因为i_arr_int[]中已经有我所需的内容了,只不过是以字符串形式存储的
请大家指教,谢谢~
------解决方案--------------------为什么不用List<string>和List<int>
------解决方案--------------------ArrayList 不需要统一类型,所以存在类型不安全性
------解决方案--------------------while (ordr.Read())
{
i_arr.Add(ordr["NAME"]);
i_arr_int.Add(ordr["ID"]);
}
这样写下面的转换不会有问题