在表单中输入的数据不会被插入到表中

本文关键字:插入 数据 表单 输入 | 更新日期: 2023-09-27 18:02:30

我无法在数据表中看到添加的数据,这是代码:

我使用的是Visual Studio 2010 Express.

private void button1_Click(object sender, EventArgs e)
{
    string t1 = textBox1.Text;
    SqlCeConnection conn =
       new SqlCeConnection(@"Data Source=|DataDirectory|'Database1.sdf");
    conn.Open();
    SqlCeCommand cmdInsert = conn.CreateCommand();
    cmdInsert.CommandText = "INSERT TO table_name (Column1) VALUES (t1)";
    cmdInsert.ExecuteNonQuery();
    conn.Close();
}

它没有插入到数据表后点击按钮,它给了我一个错误在

cmdInsert.ExecuteNonQuery();

会调试它,但是当我点击按钮时,它显示了一个错误,说

SqlCeException未处理。解析查询出错。[令牌行号= 1,令牌行偏移量= 8,令牌错误= TO]

在表单中输入的数据不会被插入到表中

尝试:

cmdInsert.Parameters.AddWithValue("@t1", textBox1.Text);
cmdInsert.CommandText = "insert INTO table_name (Column1) VALUES (@t1)";

你的代码有两个问题:

  • SQL语句语法错误-你应该写INSERT INTO而不是INSERT TO
  • 不能在SQL字符串中直接使用t1。虽然您可以像其他注释中建议的那样连接字符串,但最好使用参数化命令。

更正后的版本:

SqlCeCommand cmdInsert = conn.CreateCommand();
cmdInsert.CommandText = "INSERT INTO table_name (Column1) VALUES (@t1)";
cmdInsert.Parameters.AddWithValue("@t1", t1);
cmdInsert.ExecuteNonQuery();

参见为什么我们需要SqlCeCommand.Parameters.AddWithValue()来插入一个值?有关命令参数的详细信息。

您的sql查询错误。

不是

cmdInsert.CommandText = "INSERT TO table_name (Column1) VALUES (t1)";

应该有

cmdInsert.CommandText = "INSERT INTO table_name (Column1) VALUES (t1)";
string t1 = textBox1.Text;
            SqlCeConnection conn = new SqlCeConnection(@"Data Source=|DataDirectory|'Database1.sdf");
            conn.Open();
            SqlCeCommand cmdInsert = conn.CreateCommand();
            cmdInsert.CommandText = "INSERT into table_name (Column1) VALUES ('" + t1 + "')";
            cmdInsert.ExecuteNonQuery();
            conn.Close();

您需要传递t1的值,可能带有参数。

private void button1_Click(object sender, EventArgs e)
{
    string t1 = textBox1.Text;
    SqlCeConnection conn =
       new SqlCeConnection(@"Data Source=|DataDirectory|'Database1.sdf");
    conn.Open();
    SqlCeCommand cmdInsert = conn.CreateCommand();
    cmdInsert.CommandText = "INSERT INTO table_name (Column1) VALUES (@t1)";
    var parameter = cmdInsert.CreateParameter();
    parameter.Value = t1;
    parameter.ParameterName = "@t1";
    cmdInsert.Parameters.Add(parameter);
    cmdInsert.ExecuteNonQuery();
    conn.Close();
}