c# - 在表单中输入的数据不会插入到数据表中

标签 c# .net sql

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

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

最佳答案

因为你的查询没有参数化,所以你需要用单引号把它包起来,

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

上面的查询很容易发生SQL注入(inject),这里是参数化它的方法:

cmdInsert.CommandText = "INSERT INTO table_name (Column1) VALUES (@t1)";
cmdInsert.Parameter.AddWithValue("@t1", t1);
cmdInsert.ExecuteNonQuery();

关于c# - 在表单中输入的数据不会插入到数据表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15227812/

相关文章:

c# - 在if语句(C#)中使用“或”运算符的更简单方法

SQL从一个表中收集数据,同时计算另一个表中的记录

c# - 哈希表是可序列化的吗?

mysql - 如何在主选择和连接中访问子查询

sql - 优化MySQL中的三表连接

c# - ASP.NET 自定义 MembershipProvider

c# - ServiceStack Redis Mq认证

c# - 为什么我需要 ToList() 来避免处理上下文错误?

c# - 强制 C# 应用程序在 64 位服务器上以 32 位模式运行

c# - C# WebBrowser控件的起源