C# MySql.Data.MySqlClient.MySqlException(0x80004005)
我在C# MySql.Data.MySqlClient.MySqlException(0x80004005),c#,mysql,C#,Mysql,我在dr=cmd.ExecuteReader()附近遇到sql错误 错误消息: try { // Console.WriteLine("wtf"); con.ConnectionString = WebConfigurationManager.ConnectionStrings["dbconn"].ConnectionString;
dr=cmd.ExecuteReader()附近遇到sql错误代码>
错误消息:
try
{
// Console.WriteLine("wtf");
con.ConnectionString = WebConfigurationManager.ConnectionStrings["dbconn"].ConnectionString;
cmd.Connection = con;
cmd.CommandType = System.Data.CommandType.Text;
con.Open();
cmd.CommandText = "select count(*) from hr WHERE emp_id=@1)";
cmd.Parameters.AddWithValue("@1", emp_id);
dr = cmd.ExecuteReader();
int count = 0;
while (dr.Read())
{
count = dr.GetInt32(0);
}
dr.Close();
cmd.Dispose();
cmd.Parameters.Clear();
if (count > 0)
{
cmd.CommandText = "DELETE FROM hr WHERE emp_id=@1')";
cmd.Parameters.AddWithValue("@1", emp_id);
cmd.ExecuteNonQuery();
res.Write("deleted");
}
else
{
res.Write("zero");
}
con.Close();
}
MySqlClient需要?
参数字符,而不是@
另外,我不确定1
是否是有效的参数名。尝试使用?p_1
最后,正如RhysW所说,在你的DELETE语句中有一个额外的)
,在你的SELECT语句中有一个额外的)
,在@1之后的第二个查询中还有一个额外的“为了你的帮助,可能会把它拧成10倍的家伙..mehmet u wer rit..datw是我犯的一个非常愚蠢的错误。。
MySql.Data.MySqlClient.MySqlException (0x80004005): You have an error in your SQL
syntax; check the manual that corresponds to your MySQL server version for the right
syntax to use near ')' at line 1 at MySql.Data.MySqlClient.MySqlStream.ReadPacket() at
MySql.Data.MySqlClient.NativeDriver.GetResult(Int32& affectedRow, Int64& insertedId) at
MySql.Data.MySqlClient.Driver.GetResult(Int32 statementId, Int32& affectedRows, Int64&
insertedId) at MySql.Data.MySqlClient.Driver.NextResult(Int32 statementId, Boolean force)
at MySql.Data.MySqlClient.MySqlDataReader.NextResult() at
MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior) at
MySql.Data.MySqlClient.MySqlCommand.ExecuteReader() at
prod.Controller.HR.HRDel.ProcessRequest(HttpContext context