c# - 只能存储 MySqlParameter 对象

标签 c# mysql

我关注了this线程尝试设置与 MySQL 的连接并运行准备好的语句(与他们正在谈论 Postgresql 的线程中的细微差别)。这就是我所做的:

  IDbConnection cnx = new MySqlConnection(connectionString);
  cnx.Open();
  IDbCommand cmd = cnx.CreateCommand();

  string sql = "insert into table1 (column2) values ($1)";

  cmd.CommandText = sql;

  IDbDataParameter param = cmd.CreateParameter();
  param.DbType = DbType.AnsiString;
  param.ParameterName = "1";
  param.Value = "Parameter Value";

  cmd.Parameters.Add(param);
  cmd.ExecuteNonQuery();

但结果,我收到错误消息:

MySql.Data.MySqlClient.MySqlException: Only MySqlParameter objects may be stored at MySql.Data.MySqlClient.MySqlParameterCollection.Add (System.Object value) [0x00000] in :0

我应该补充一点,我专门使用 IDbConnection,因为稍后我想在其他数据库中重用此代码,这种方法应该可以节省我数百行代码。

最佳答案

使用@作为名称装饰器而不是$

string sql = "insert into table1 (column2) values (@value)";
...
cmd.Parameters.Add("@value", MySqlDbType.AnsiString).Value = "Parameter Value";

关于c# - 只能存储 MySqlParameter 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33583811/

相关文章:

mysql - 一行为空时无法删除mysql匹配项

mysql - 创建过程mysql错误在 ''附近

c# - 我应该在帖子中还是在 url 中存储 _method=PUT/DELETE

c# - 检测屏幕键盘是否打开

c# - 如何从 ASP.NET webforms 中的 url 获取字符串?

mysql - Heroku 错误 : Please install the postgresql adapter but I'm using mysql, 那么为什么我会看到此错误?

c# - XSLT 转换未正确缩进

C#、J# 和 VB.NET 是否可以在每个类中编写一个类并使其变量在一个应用程序中交互?

php - varchar 日期未在 mysql 查询中选择

MySQL 按第一周值分组,同时包括第二周值