У меня есть таблица под названием «Продукты». Я хочу получить все идентификаторы всех записей и сохранить их в массиве.получить все идентификаторы из базы данных
conn = new OleDbConnection();
conn.ConnectionString = "myconnectionstring";
conn.Open();
query = "SELECT * from Products";
cmd = new OleDbCommand(query,conn);
reader = cmd.ExecuteReader();
//Int16 a=(int)cmd.ExecuteScalar();
Int16[] id = { 0 };
int counter = 0;
while (reader.Read())
{
counter++;
id[counter] = reader.GetInt16(0); //I got error here that aray is out of bount
}
foreach (Int16 a in id)
{
Console.WriteLine(a);
}
conn.Close();
return id;
Я изменил мой код ... он бросает exception.it сказать указанный бросок не является действительным ..
conn = new OleDbConnection();
conn.ConnectionString = "my connetion string";
conn.Open();
query = "SELECT ID from Products";
cmd = new OleDbCommand(query,conn);
reader = cmd.ExecuteReader();
//Int16 a=(int)cmd.ExecuteScalar();
List<Int16> id = new List<Int16>();
while (reader.Read())
{
id.Add(reader.GetInt16(0));
}
conn.Close();
return id;
Вы уверены, что ваш первый столбец - это идентификатор, который вы хотите? используйте имя столбца, которое вы хотите, а не * –
Я поменял его по-прежнему той же ошибкой. "указанное приведение недействительно." – Umerm
Посмотрите на мой пример ниже, вам нужно сделать id.ToArray(); Надеюсь это поможет! –