Я пытаюсь выбрать одну конкретную c строку из моей mysql базы данных.
В SQL Я бы просто использовал
select * from endkunden where id = 2;
, это прекрасно работает Я получаю все, что хочу.
Теперь я хочу сделать это в своем коде c# и сохранить данные в виде списка строк.
Я попытался сделать это следующим образом
public List<string> SelectListRow(string target, string table,string idef, int id)
{
string query = "SELECT " + target + " FROM " + table + " where "+ idef + " = " +id;
List<string> list = new List<string>();
if (this.OpenConnection())
{
MySqlCommand cmd = new MySqlCommand(query, connection);
MySqlDataReader dataReader = cmd.ExecuteReader();
while (dataReader.Read())
{
list.Add(Convert.ToString(dataReader[target]));
}
dataReader.Close();
this.CloseConnection();
return list;
}
return list;
}
Так как это работало для выбора всех столбцов в таблице с использованием
select compname from endkunden;
Я предположил, что это будет работать и со строками, но это не так. При его использовании
я использую следующий запрос:
select *
from endkunden
where id = 2
, но теперь я получаю сообщение об ошибке:
System.IndexOutOfRangeException
HResult = 0x80131508
Nachricht = Не удалось найти указанный столбец в результатах: *
Quelle = MySql .Data
Stapelüberwachung:
at MySql .Data.MySqlClient.ResultSet.GetOrdinal (String имя)
в MySql .Data.MySqlClient.MySqlDataReader.GetOrdinal (имя строки)
в MySql .Data.MySqlClient.MySqlDataReader.get_Item (имя строки)
в MySQL_Tts.D .SelectListRow (строковая цель, строковая таблица, String idef, Int32 id) в C: \ Users \ Murf \ source \ repos \ MySQL Tests \ MySQL Tests \ DBA C .cs: строка 187
в MySQL_Tests.Program.Main (String [] args) в C: \ Users \ Murf \ source \ repos \ MySQL Tests \ MySQL Tests \ Program.cs: строка 13
Nachricht означает сообщение, quelle означает ошибку, stapelüberwachung означает .. я не знаю
Есть идеи, как это исправить?
Привет, Murf