在表格中输入的数据不会在表格中插入

时间:2013-03-05 19:32:32

标签: c# .net sql

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

我正在使用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]

5 个答案:

答案 0 :(得分:7)

尝试:

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

答案 1 :(得分:3)

您的代码存在两个问题:

  • 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();

有关命令参数的详细信息,请参阅Why do we need SqlCeCommand.Parameters.AddWithValue() to Insert a value?

答案 2 :(得分:1)

您的SQL查询错误。

而不是

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

应该有

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

答案 3 :(得分:1)

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();

答案 4 :(得分:0)

您需要传递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();
}