将带有C#的点符号插入mySQL错误

时间:2016-05-21 23:52:03

标签: c# mysql

我遇到一个奇怪的问题,我对MySQL DB进行INSERT查询

                string site = txtSite.Text;
                string query = "INSERT INTO `site`(`id`, `url`, `status`) VALUES (NULL,?url, 1)";

                MySqlCommand cmd = new MySqlCommand(query);
                cmd.Parameters.AddWithValue("?url", site);
                //cmd.Parameters.AddWithValue("?url", "abc.com");
                cmd.Connection = (MySqlConnection)connection;
                cmd.Prepare();

                cmd.ExecuteNonQuery();

1。如果我进入" abc.com"进入文本框txtSite,并运行代码,它说错误

  

命令执行期间遇到致命错误。

  1. 但如果我没有获得txtSite的价值,我会把#34; abc.com"直接到?url,cmd运行OK,而不是错误。
  2. 你能有任何想法吗?

1 个答案:

答案 0 :(得分:1)

我认为这是一个语法问题。以下代码可能适合您。

string site = txtSite.Text;
string query = "INSERT INTO `site`(`id`, `url`, `status`) VALUES (NULL, @url, 1)";

MySqlClientconn conn = new MySqlConnection();
conn.Open();

MySqlCommand cmd = new MySqlCommand();
cmd.Connection = conn;
cmd.CommandText = query;
cmd.Prepare();

cmd.Parameters.AddWithValue("@url", site);

cmd.ExecuteNonQuery();

我假设您正在使用MySQL Connector / Net库。完成后,不要忘记关闭连接并处理命令和连接。

<强>参考

有关使用MySQL Connector / Net库的更多信息,请参阅以下内容: https://dev.mysql.com/doc/connector-net/en/connector-net-programming-prepared-preparing.html