【发布时间】:2017-07-19 22:39:32
【问题描述】:
cmd.executenonquery 显示(不能有空值)错误!
下面是代码
我正在尝试将数据插入文本框并发送到数据库中的表,但它一直显示为 NULL。
SqlConnection con = new SqlConnection("Data Source=*******;Initial Catalog=MaleFemale;Integrated Security=True");
public MainWindow()
{
InitializeComponent();
}
private void Button_Click(object sender, RoutedEventArgs e)
{
if (con.State == System.Data.ConnectionState.Closed)
{
con.Open();
SqlCommand cmd = new SqlCommand("insert into TableMaleFemale(Name,EiD,Gender) values ('" + NametextBox.Text + "', '" + EiDtextBox.Text + "', '" + GendertextBox.Text + "')", con);
cmd.ExecuteNonQuery();
cmd.Dispose();
con.Close();
}
}
【问题讨论】:
-
对于初学者,您的代码对 SQL 注入是开放的。这很可能是问题的根源。发生错误时,
cmd正在执行的 exact 查询是什么(在您插入这些值之后)以及 exact 错误消息是什么? -
什么是SQL注入
-
en.wikipedia.org/wiki/SQL_injection 这基本上意味着您在盲目地执行用户写入应用程序的任何 SQL 代码。在 .NET 中查看称为“参数化查询”的东西。
-
哦。好的。一定是SQL注入?
-
检查 TableMaleFemale 的表定义是否有任何设置为“NOT NULL”的列。您可能没有在插入语句中提供足够的列。
标签: c#