Подготовленный оператор SELECT в .Net - PullRequest
2 голосов
/ 01 июня 2011

Я не могу понять, что я делаю неправильно, я не могу ВЫБРАТЬ с готовым заявлением. Однако я могу ВСТАВИТЬ с готовым утверждением.

MySqlCommand cmd = new MySqlCommand("SELECT * FROM code_post WHERE name = ?postRequired LIMIT 1",  dbcon);
cmd.Parameters.Add(new MySqlParameter("?postRequired", requestString));
cmd.ExecuteNonQuery();

DataSet ds = new DataSet();
cmd.fill(ds, "result");
try {
             thisBlog = ds.Tables["result"].Rows[0];
} catch {
             invalid();
             return;
}

Любой совет по этому вопросу будет принята с благодарностью!

Ответы [ 2 ]

5 голосов
/ 01 июня 2011

Для заполнения DataSet вам понадобится DataAdapter.

Попробуйте это:

MySqlCommand cmd = new MySqlCommand("SELECT * FROM code_post WHERE name = ?postRequired LIMIT 1",  dbcon);
cmd.Parameters.Add(new MySqlParameter("?postRequired", requestString));
cmd.ExecuteNonQuery();

DataSet ds = new DataSet();
MySqlDataAdapter dAdap = new MySqlDataAdapter();
dAdap.SelectCommand = cmd;
dAdap.Fill(ds, "result");
try {
             thisBlog = ds.Tables["result"].Rows[0];
} catch {
             invalid();
             return;
}
3 голосов
/ 01 июня 2011

Вам необходимо использовать SqlDataAdapter

DataAdapter представляет набор команд данных и соединение с базой данных, которые используются для заполнения DataSet и обновления базы данных SQL Server.

SqlDataAdapter предоставляет этот мост путем сопоставления Fill , который изменяет данные в наборе данных для соответствия данным в источнике данных

Проверьте следующий синтаксис:

private static DataSet SelectRows(DataSet dataset,
    string connectionString,string queryString) 
{
    using (SqlConnection connection = 
        new SqlConnection(connectionString))
    {
        SqlDataAdapter adapter = new SqlDataAdapter();
        adapter.SelectCommand = new SqlCommand(
            queryString, connection);
        adapter.Fill(dataset);
        return dataset;
    }
}
...