关于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"]);
}
这样写下面的转换不会有问题