在表单中输入的数据不会被插入到表中
本文关键字:插入 数据 表单 输入 | 更新日期: 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();
}