Я запрашивая базы данных MySQL из C# с .NET Connector 6.8.6Параметризованная MySQL запрос не возвращает никаких результатов
Я написал следующую функцию запроса:
public DataSet ExecuteQuery()
{
try
{
this.dataset = new DataSet();
dataset.Clear();
conn = new MySqlConnection(this.queryConfig.GetConString());
conn.Open();
MySqlCommand cmd = new MySqlCommand(this.queryText, conn);
MySqlDataAdapter _mySQLAdapter = new MySqlDataAdapter(cmd);
_mySQLAdapter.Fill(dataset);
conn.Close();
return this.dataset;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
return this.dataset;
}
finally
{
if (conn != null) conn.Close();
}
}
Теперь я Я работаю над защитой своих запросов от SQL-инъекций.
Это мой запрос Функция:
string queryText2 = string.Format("SELECT TABLE_NAME AS 'table_name', "
+ "round(((data_length + index_length)/1024/1024), 2) AS 'Size(MB)'"
+ "FROM information_schema.TABLES "
+ "WHERE table_schema = @dbname");
MySqlCommand command = new MySqlCommand(queryText2);
command.Parameters.AddWithValue("@dbname", Convert.ToString(databaseName));
Однако, это не похоже на работу. @dbname в запросе String никогда не заменяется .Parameters.AddWithValue, и, таким образом, запрос терпит неудачу.
Есть ли способ заставить это работать, не отказываясь от моего полного класса запросов?
Есть ли сообщения об ошибке? – Takarii
@Takarii № «@dbname» просто не заменяется именем базы данных. – Fang
@PanagiotisKanavos это именно то, о чем он просит о помощи .... – Takarii