C# 获取数据库错误:条件表达式c中的数据类型不匹配
对c和db编程来说是相当陌生的。我已经接管了别人的密码。我试图更新数据库时出错。代码如下:C# 获取数据库错误:条件表达式c中的数据类型不匹配,c#,mysql,visual-studio-2010,C#,Mysql,Visual Studio 2010,对c和db编程来说是相当陌生的。我已经接管了别人的密码。我试图更新数据库时出错。代码如下: private void EnableEvent(int eventID) { OleDbCommand oleCMD = new OleDbCommand(); oleCMD.Connection = Database.SqlConn(); OleDbTransaction oleTrans = oleCMD.Connection.Beg
private void EnableEvent(int eventID)
{
OleDbCommand oleCMD = new OleDbCommand();
oleCMD.Connection = Database.SqlConn();
OleDbTransaction oleTrans = oleCMD.Connection.BeginTransaction();
oleCMD.Transaction = oleTrans;
try
{
StringBuilder sql = new StringBuilder();
sql.AppendFormat("UPDATE Events SET isActive = 1 where EventID='{0}'", eventID);
oleCMD.CommandText = sql.ToString();
// insert the header
oleCMD.ExecuteNonQuery();
oleTrans.Commit();
}
catch(Exception e)
{
MessageBox.Show(e.Message, "Database Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
}
finally
{
oleCMD.Connection.Close();
oleCMD.Dispose();
}
}
编辑:
明白了。。。按照下面的格式设置查询,它肯定会工作
StringBuilder sql = new StringBuilder();
sql.AppendFormat("UPDATE Events SET isActive = 1 where EventID = {0}", eventID);
对于数字字段,您不应该在值周围加撇号。这就是问题所在。试试这个
private void EnableEvent(int eventID)
{
OleDbConnection myConn = new OleDbConnection(myConnString);
myConn.Open();
OleDbCommand myCommand = myConn.CreateCommand();
OleDbTransaction myTrans;
// Start a local transaction
myTrans = myConn.BeginTransaction();
// Assign transaction object for a pending local transaction
myCommand.Connection = myConn;
myCommand.Transaction = myTrans;
try
{
StringBuilder sql = new StringBuilder();
sql.AppendFormat("UPDATE Events SET isActive = 1 where EventID='{0}'", eventID);
myCommand.CommandText = sql.ToString();
// insert the header
myCommand.ExecuteNonQuery();
myTrans.Commit();
}
catch(Exception e)
{
MessageBox.Show(e.Message, "Database Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
}
finally
{
myCommand.Connection.Close();
myCommand.Dispose();
}
}
让我知道这是否有帮助 您可以发布完整的错误字符串吗?我如何获得更多的错误字符串?e、 消息是条件ExpressioneventID中的数据类型不匹配是一个整数。。。我仔细检查了。您是否尝试了我在回答中建议的查询格式。。。只需引用set isActive='1'并重试一次。应该可以,我做到了。不走运。我会在MySQL工作台中使用什么命令手动尝试它?我知道如何从数据库运行SELECT查询。但是如何运行更新?这样我就可以知道数据库是否会进行更新。