Я пытаюсь создать простое окно оболочки MySQL в моем приложении C#.
Я использую объект MySqlDataAdapter для получения результата SELECT и объект MySqlCommand с ExecuteNonQuery для запуска INSERT, UPDATE, DELETE. Пользователь должен выбрать, что он хочет запустить заранее.
Я хотел бы знать, есть ли объект, который запускает любую команду SQL, возвращающую данные в SELECT и возвращающую строки, затронутые в INSERT / DELETE / UPDATE, без необходимости предварительно его указывать.
MySQL Сервер 8.0 и Visual Studio 2019.
Пока мой класс:
public class Query
{
public Query()
{
this.QueryTable = new DataTable();
}
public string QueryString;
public string QueryResponse;
public DataTable QueryTable;
public string WithData(string connStr)
{
QueryResponse = "";
MySqlConnection conn = new MySqlConnection(connStr);
try
{
conn.Open();
MySqlDataAdapter adapter = new MySqlDataAdapter(QueryString, conn);
adapter.Fill(QueryTable);
QueryResponse = "OK";
}
catch (Exception ex)
{
QueryResponse = ex.Message;
}
conn.Close();
return QueryResponse;
}
public string WithoutData(string connStr)
{
QueryResponse = "";
MySqlConnection conn = new MySqlConnection(connStr);
try
{
conn.Open();
MySqlCommand command = new MySqlCommand();
command.CommandText = QueryString;
command.Connection = conn;
int rowsAffected = command.ExecuteNonQuery();
if (rowsAffected > 0)
{
QueryResponse = "Rows affected: " + rowsAffected.ToString();
}
}
catch (Exception ex)
{
QueryResponse = ex.Message;
}
conn.Close();
return QueryResponse;
}
}