我試圖添加一些東西以便可以從表中洗掉東西,盡管它說'='附近存在語法錯誤,我似乎無法發現它。我知道這不是最理想的方法,但我被告知要這樣做,而且我在截止日期前;;這是我放的:
Con.Open();
string query = "DELETE FROM tablepassengers WHERE passportno.=" tbpassno.Text ';';
SqlCommand cmd = new SqlCommand(query, Con);
cmd.ExecuteNonQuery();
MessageBox.Show("deleted");
Con.Close();
populate();
uj5u.com熱心網友回復:
正如你所說的.那樣,列名是passportno.,這就是你的問題所在。這不是預期或推薦的事情,但它是可以處理的事情。
使用 Sql 時,您確實應該在代碼中構造 Sql 陳述句時使用引數。強烈建議使用它,這不僅是一種很好的做法,它還可以保護您的應用程式免受有針對性的攻擊,Parameters請閱讀為什么我們總是喜歡在 SQL 陳述句中使用引數?
將您的代碼更改為如下所示:
string query = "DELETE FROM tablepassengers WHERE [passportno.]=@passportNo;";
using (SqlCommand cmd = new SqlCommand(query, Con))
{
cmd.Parameters.Add(new SqlParameter("passportNo", SqlDbType.VarChar, 100).Value = tbpassno.Text;
cmd.ExecuteNonQuery();
}
MessageBox.Show("deleted");
Con.Close();
uj5u.com熱心網友回復:
try
{
string query = "DELETE FROM tablepassengers WHERE passportno=" tbpassno.Text;
SqlCommand cmd = new SqlCommand(query, Con);
Con.Open();
cmd.ExecuteNonQuery();
MessageBox.Show("deleted");
}
catch (SqlException ex)
{
MessageBox.Show("Error\n" ex.Message);
}
finally
{
Con.Close();
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/471031.html
上一篇:用于捕獲審計表中更改的列的觸發器
