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);
}
你能告诉我这个代码有什么问题吗
当您想要计算行数时,使用以下查询:
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
中有一个额外的分号…我想。