在.Net中准备SELECT语句

本文关键字:SELECT 语句 Net | 更新日期: 2023-09-27 17:58:18

我不明白我做错了什么,我似乎无法用准备好的语句进行SELECT。不过,我可以插入一个事先准备好的语句。

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;
}

如有任何建议,我们将不胜感激!

在.Net中准备SELECT语句

要填充数据集,您需要一个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;
}

您需要使用SqlDataAdapter

DataAdapter表示用于填充DataSet和更新SQL Server数据库的一组数据命令和数据库连接。

SqlDataAdapter通过映射Fill来提供此桥接,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;
    }
}