mysql SQL语句不能在c#中工作

本文关键字:工作 不能 SQL 语句 mysql | 更新日期: 2023-09-27 18:12:31

我一直在努力使这个代码块工作,但我似乎找不到错误。它没有返回我要找的值。我会尝试在工作台中运行SQL语句,它返回我想要的行数(即3)。

        try
        {
            using (MySqlConnection con = new MySqlConnection(GlobalValues.ConnectionString))
            {
                using (MySqlCommand cmd = new MySqlCommand())
                {
                    cmd.CommandText =
                        @"
                            SELECT strDetPremID, strPremiseName
                                    FROM tbldetailprem 
                                    INNER JOIN tblpremise ON strDetPremID = strPremiseID
                                    WHERE strDetPremContID = @id;
                            ;
                            "
                        ;
                    cmd.Parameters.AddWithValue("@id", id);
                    cmd.Connection = con;
                    using (MySqlDataAdapter da = new MySqlDataAdapter(cmd))
                    {
                        con.Open();
                        cmd.ExecuteNonQuery();
                        this.Clear();
                        da.Fill(this);
                        con.Close();
                    }
                }
            }
        }
        catch (MySqlException ex)
        {
            MessageBox.Show(ex.ToString() + " - " + ex.Number);
        }

你能告诉我这个代码有什么问题吗

mysql SQL语句不能在c#中工作

当您想要计算行数时,使用以下查询:

SELECT COUNT(*) FROM tbldetailprem 
INNER JOIN tblpremise ON strDetPremID = strPremiseID
WHERE strDetPremContID = @id;

然后在命令对象上使用ExecuteScalar()方法获取COUNT(*)的值。ExecuteNonQuery()用于添加、更新和删除记录,而不是选择记录。

更多信息可以在这里找到:https://dev.mysql.com/doc/connector-net/en/connector-net-tutorials-sql-command.html

这可能更像是一个注释,但我缺乏注释的权限。

对我来说,在问题可能来自的代码中并不完全清楚,所以我的假设是有一个没有被捕获为MySQLException的错误。

您是否尝试删除try/catch语句以捕获任何可能阻止affectedRows更新的错误?

另外,我不确定它是否会导致SyntaxError,但似乎你在cmd.CommandText中有一个额外的分号…我想。