这会引发一个错误:输入字符串的格式不正确

时间:2015-09-16 19:18:31

标签: c# sql database

string constring = "datasource=127.0.0.1;port=3306;username=user;password=pass;database=raw_data";
string Query = "SELECT * FROM data WHERE symbol='" + textBox1.Text + "';";
try
{
    MySqlConnection connDataBase = new MySqlConnection(constring);
    MySqlCommand cmd = new MySqlCommand(Query,connDataBase);
    connDataBase.Open();
    MySqlDataReader reader = cmd.ExecuteReader();

我尝试多次更改但未成功,并寻找未找到的解决方案。

1 个答案:

答案 0 :(得分:0)

嗯,你有很多问题:

  • MySQL不在连接字符串中使用参数datasource。也许是server
  • 我们无法判断查询变量中的字符串会发生什么,因为我们不知道文本框的内容。您应该在连接后向我们显示该变量的内容。
  • 执行字符串连接以生成SQL正如您所做的那样容易出错(如果字符串中有单个引号字符会发生什么)并且很危险(有人可以利用难度将随机SQL推送到您的数据库中)。您应该阅读有关易于构建且使用更安全的参数化SQL查询。
  • 变量名Query不是很好,因为它错了,可能与班级名称冲突。
  • 名称data对于表格是危险的,symbol对于列名称也是如此,因为它们可能与保留字词冲突。如果必须使用它们,请将它们用数据库的正确标识符引号括起来。