【发布时间】:2014-04-12 18:48:07
【问题描述】:
我想从数据库中选择所有行和列(没有条件)并将每个元组(例如:表中 index[0,0] 的值)存储在一个字符串数组中..
这是我正在使用的代码:
using (MySql.Data.MySqlClient.MySqlConnection connection = new MySql.Data.MySqlClient.MySqlConnection("S;Port=P;Database=DB;Uid=U;Pwd=P")) {
connection.Open();
MySql.Data.MySqlClient.MySqlCommand cmd=connection.CreateCommand();
cmd.CommandText = "SELECT * FROM table_name";
MySql.Data.MySqlClient.MySqlDataReader datr = cmd.ExecuteReader();
coun = Convert.ToInt32(cmd.ExecuteScalar());
while (datr.Read()){
for (int i = 0; i < coun; i++) {
First_String[i] = datr[0].ToString();
Second_String[i] = datr[1].ToString();
Third_String[i] = datr[2].ToString();
/* and so on...*/
}
}
}
我收到一条错误消息:Object not "Object reference not set to an instance of an object."
做错了什么?
谢谢
【问题讨论】:
-
内循环没有意义。您正在重复相同的数据计数。 While(data.Read()) 执行您尝试对内部循环执行的操作。
-
确保初始化你的第一个、第二个和第三个数组,同时检查你的数据库是否存在空值
-
哪一行抛出错误?因为并非所有代码都是可见的。
-
@Izzo32 在第二次 While 迭代中,Data 将被覆盖,因为 i 将再次为 0。
-
@Izzo32 like First_String=new string[column_count_of db_table]
标签: c# mysql visual-studio-2012 datareader