【发布时间】:2021-04-07 12:58:17
【问题描述】:
private void btnSave_Click(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=LoginDB;Integrated Security=True");
con.Open();
SqlCommand commamd = new SqlCommand("insert into tblUser values ('"+string.Format(txtUser.Text)+"' , '"+ txtServer.Text+"' , '"+txtpwd.Text+"', getdate())" ,con );
commamd.ExecuteNonQuery();
MessageBox.Show("Successfully Inserted");
con.Close();
BindData();
}
void BindData()
{
SqlCommand command = new SqlCommand("select * from tblUser" ,con);
SqlDataAdapter sd = new SqlDataAdapter();
DataTable dt = new DataTable();
sd.Fill(dt);
dataGridView.DataSource = dt;
}
我在新的 sqlcommand 查询中遇到错误。请帮我解决这个问题。
【问题讨论】:
-
它不会解决您的问题,但这是 sql 注入的完美候选者。您需要参数化您的数据。
-
也是纯文本密码的完美候选者。而且对于重新排序的列也很脆弱。并且也不保证SqlCommand、SqlConnection 和SqlDataAdapter 的处置。启动时,显示一个连接仍然打开的 MessageBox
-
请发布完整的异常消息,它发生在哪一行?
-
也属于“插入后从数据库进行完全刷新”的反模式
标签: c# sql-server crud void-pointers sqlcommand