2

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

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

4

5 回答 5

7

尝试:

cmdInsert.Parameters.AddWithValue("@t1", textBox1.Text);
cmdInsert.CommandText = "insert INTO table_name (Column1) VALUES (@t1)";
于 2013-03-05T19:37:43.487 回答
3

您的代码有两个问题:

  • SQL 语句中的语法错误 - 您应该编写INSERT INTO而不是INSERT TO.
  • 您不能t1直接在 SQL 字符串中使用。尽管您可以按照其他评论中的建议连接字符串,但最好使用参数化命令。

这是更正后的版本:

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

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

于 2013-03-05T19:39:10.523 回答
1

您的 sql 查询错误。

代替

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

应该有

cmdInsert.CommandText = "INSERT INTO table_name (Column1) VALUES (t1)";
于 2013-03-05T19:37:05.843 回答
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();
于 2013-03-05T19:40:53.907 回答
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();
}
于 2013-03-05T19:39:13.997 回答