嗨我有用户数据的数据库,我需要这些数据在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]等....
答案 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
的行(注意:我假设只有一行在这里是的,您的问题/评论意味着这一点,但并未明确说明。