【问题标题】:Cant update the database with this string what am i doing wrong?不能用这个字符串更新数据库我做错了什么?
【发布时间】:2015-05-31 20:14:01
【问题描述】:

这是代码,谁能帮帮我?

Value = Convert.ToInt32(Console.ReadLine());

switch (Value)
{
    case 1:
        Console.WriteLine("Please enter number");
        number = Convert.ToInt32(Console.ReadLine());
         Console.WriteLine("Please insert the first word");
        word1 = Convert.ToString(Console.ReadLine());
        Console.WriteLine("Please insert the second word");
        word2 = Convert.ToString(Console.ReadLine());
        string sql1 = "INSERT INTO storage ('" + number + "', '" + word1 + "', '" + word2 + "')";


        one.Update(sql1);


        break;

【问题讨论】:

  • 它就是我所说的我的类,比如 SimpleDataScource one = new SimpleDataScource
  • 为什么人们投票反对?
  • @Mr.Bean 可能是因为数字、word1、word2 的数据类型等信息不完整......有什么例外......
  • @Mr.Bean 顺便说一句,您的 INSERT 语句必须具有要插入的字段值名称
  • 您在 sql INSERT 中错过了 VALUES 尝试 string sql1 = "INSERT INTO storage VALUES ('" + number + "', '" + word1 + "', '" + word2 + "')";

标签: c# mysql


【解决方案1】:

我会通过以下方式解决这个问题:

替换

string sql1 = "INSERT INTO storage ('" + number + "', '" + word1 + "', '" + word2 + "')";
one.Update(sql1);

string sCommand = "INSERT INTO storage (@number, @word1, @word2)";
using (MySqlConnection mConnection = new MySqlConnection(ConnectionString))
{
    mConnection.Open();
    using (MySqlCommand myCmd = new MySqlCommand(sCommand, mConnection))
    {
        myCmd.Parameters.Add(new MySqlParameter("@number", number));
        myCmd.Parameters.Add(new MySqlParameter("@word1", word1));
        myCmd.Parameters.Add(new MySqlParameter("@word2", word2));
        myCmd.ExecuteNonQuery();
    }
}

...或提供有关您的 SimpleDataSource-Object 的更多信息

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-29
    • 2021-09-27
    • 2011-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-06
    相关资源
    最近更新 更多