从Mysql数据库获取数据到C#中的数组

时间:2014-07-08 13:34:56

标签: c# mysql

嗨我有用户数据的数据库,我需要这些数据在C#中使用cyklus进入我的数组

此代码

MySqlCommand cmd = connection.CreateCommand();
cmd.CommandText = "SELECT * FROM usersdata WHERE user_id='1'";
MySqlDataReader dataReader = cmd.ExecuteReader();
int i = 0;
while (dataReader.Read())
{
    userdata[i] = Convert.ToInt32(dataReader[i]);
    i++;               


 }


 dataReader.Close();

但是这项工作只有一个,对于id 0之后什么都没有,有人帮帮我?非常感谢

我需要数据读取器读取所有列并将colum 0中的信息提供给userdata [0],colum 1提供给userdata [1]等....

3 个答案:

答案 0 :(得分:0)

datareader正在读取当前记录的字段索引。您需要将dataReader [i]更改为dataReader [0],但继续增加userdata变量的索引。

看起来应该是这样的:

while (dataReader.Read())
{
    userdata[i++] = Convert.ToInt32(dataReader[0]); //i++ can be included right in the array index.
}

答案 1 :(得分:0)

请试试这个

while (dataReader.Read())
{
    userdata[i] = Convert.ToInt32(dataReader[0]);
    i++;
    userdata[i] = Convert.ToString(dataReader[1]);//Change the datatype base on the data type of the field in the table
    i++;               


}

答案 2 :(得分:0)

问题是dataReader.Read()表示"转到数据库并获取下一行"。听起来你想从一行获得所有数据。

我认为你想要的更像是:

dataReader.Read();
for (int i=0; i</*number of columns that you have*/; i++) {
    userData[i] = Convert.ToInt32(dataReader[i]);
}

请注意dataReader.Read()只被调用一次,所以你只会看到第一行的数据 - user_id = 1的行(注意:我假设只有一行在这里是的,您的问题/评论意味着这一点,但并未明确说明。