我无法在数据表中看到添加的数据,这是代码:
我正在使用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]
答案 0 :(得分:7)
尝试:
cmdInsert.Parameters.AddWithValue("@t1", textBox1.Text);
cmdInsert.CommandText = "insert INTO table_name (Column1) VALUES (@t1)";
答案 1 :(得分:3)
您的代码存在两个问题:
INSERT INTO
而不是INSERT TO
。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();
}