Dynami c Shell до MySQL с использованием C# - PullRequest
0 голосов
/ 15 апреля 2020

Я пытаюсь создать простое окно оболочки 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;
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...