在c#中从Mysql数据库获取数据到数组
本文关键字:数据 数组 获取 数据库 中从 Mysql | 更新日期: 2023-09-27 18:12:02
嗨,我有数据库的用户数据,我需要这些数据得到我的数组在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后一无所获,谁来帮帮我?非常感谢
我需要数据阅读器读取所有列,并给出信息从列0到userdata[0],列1到userdata[1]等....
数据读取器正在读取当前记录的字段索引。您需要将dataReader[i]更改为dataReader[0],但继续增加userdata变量的索引。
应该是这样的:
while (dataReader.Read())
{
userdata[i++] = Convert.ToInt32(dataReader[0]); //i++ can be included right in the array index.
}
请尝试一下
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++;
}
问题是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
所在的行(注意:我假设只有一行这是真的,你的问题/评论暗示了这一点,但没有明确地说出来)。