[英]Getting DB error: data type mismatch in criteria expression c#
Pretty new to c# and db programming. C#和db编程的新手。 And I've taken over somebody else's code.
而且我已经接管了别人的代码。 I'm getting an error when I'm trying to update the DB.
尝试更新数据库时出现错误。 Here's the code:
这是代码:
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();
}
}
EDIT: 编辑:
Gotcha now ... format your query like below and it would surely work 现在知道...按如下格式设置查询,它肯定可以工作
StringBuilder sql = new StringBuilder();
sql.AppendFormat("UPDATE Events SET isActive = 1 where EventID = {0}", eventID);
With Numeric
fields yiou shouldn't put apostrophes around the value. 对于
Numeric
字段,yiou不应在值周围加上撇号。 That was the problem. 那就是问题所在。
Try this! 尝试这个!
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();
}
}
Let me know if this helps! 让我知道这是否有帮助!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.