У меня есть метод "LeerTabla" в классе C #, который дает имя таблицы в базе данных MySQL и возвращает столбцы ip и estado, я безуспешно пробовал параметры:
Сначала с AddWithValue, вызывая методс "secot" obj.LeerTabla("secot")
:
public void LeerTabla(string NombreTabla)
{
string SQLCmdStr;
try
{
SQLCmdStr = "SELECT ip, estado FROM @tabla";
MySqlCommand SQLcmd = new MySqlCommand(SQLCmdStr, SqlDBconn);
SQLcmd.Prepare();
SQLcmd.Parameters.AddWithValue("@tabla", NombreTabla);
MySqlDataReader SQLReader = SQLcmd.ExecuteReader();
while(SQLReader.Read())
{
TablaDeIP.Add(SQLReader["ip"].ToString());
ListaDeEstado.Add(SQLReader["estado"].ToString());
}
}
catch (MySql.Data.MySqlClient.MySqlException ex)
{
MessageBox.Show(ex.Message);
}
}
Затем с Add:
public void LeerTabla(string NombreTabla)
{
string SQLCmdStr;
try
{
SQLCmdStr = "SELECT ip, estado FROM @tabla";
MySqlCommand SQLcmd = new MySqlCommand(SQLCmdStr, SqlDBconn);
MySqlParameter parametro = new MySqlParameter();
parametro.ParameterName = "@tabla";
parametro.Value = NombreTabla;
SQLcmd.Parameters.Add(parametro);
MySqlDataReader SQLReader = SQLcmd.ExecuteReader();
while(SQLReader.Read())
{
TablaDeIP.Add(SQLReader["ip"].ToString());
ListaDeEstado.Add(SQLReader["estado"].ToString());
}
}
catch (MySql.Data.MySqlClient.MySqlException ex)
{
MessageBox.Show(ex.Message);
}
}
Оба дали мне одно и то же исключение: "У вас ошибка в синтаксисе SQL; проверьте руководствоэто соответствует вашей версии сервера MySQL для правильного синтаксиса, чтобы использовать около "secot" в строке 1 "...
Но если я не использую параметры, это работает ОК:
public void LeerTabla(string NombreTabla)
{
string SQLCmdStr;
try
{
SQLCmdStr = "SELECT ip, estado FROM secot";
MySqlCommand SQLcmd = new MySqlCommand(SQLCmdStr, SqlDBconn);
SQLcmd.Prepare();
MySqlDataReader SQLReader = SQLcmd.ExecuteReader();
while(SQLReader.Read())
{
TablaDeIP.Add(SQLReader["ip"].ToString());
ListaDeEstado.Add(SQLReader["estado"].ToString());
}
}
catch (MySql.Data.MySqlClient.MySqlException ex)
{
MessageBox.Show(ex.Message);
}
}
Что я делаю не так?любая помощь будет отличной.