2017-02-21 18 views
0

我正在製作一個網頁表單,從數據庫中刪除所選的ID。但每當我運行我的命令,我得到以下錯誤如何檢查數據庫中的值是否存在於Visual Studio中?

NullReferenceRxception是由用戶未處理。

而我正在使用addwithvalues。

這是我的代碼:

con.Open(); 
string query = "delete from [User] where id ='" + TextBox1.Text + "'"; 
SqlCommand cmd = new SqlCommand(query, con); 
cmd.Parameters.AddWithValue("@id", TextBox1.Text); //this is giving an error 
int UserExist = (int)cmd.ExecuteScalar(); 
if (UserExist > 0) 
{ 
    cmd.ExecuteNonQuery(); 
    con.Close(); 
} 
else 
{ 
    Label1.Text = "No such id found "; 
} 

我怎樣才能解決這個問題?

+0

你確定你把你的文本框退出在你的數據庫相同的ID?你有追溯你的代碼嗎?試試這個'TextBox1.Text.Trim()' – Valkyrie

+0

什麼是您的數據庫中的id類型? – Valkyrie

+0

[SQL注入警報](http://msdn.microsoft.com/en-us/library/ms161953%28v=sql.105%29.aspx) - 你應該**不**連接你的SQL語句 - 使用**參數化查詢**,而不是爲了避免SQL注入 - 檢查[小Bobby表](https://xkcd.com/327/) –

回答

0

使用這種方法看看它的作品,我認爲Id的類型是Integer

using(var cmd1 = new SqlCommand("DELETE FROM User WHERE Id = @Id", conn)) 
{ 
    cmd1.Parameters.Add("@Id", SqlDbType.Int).Value = Int.Parse(TextBox1.Text); 
    conn.Open(); 
    cmd1.ExecuteNonQuery(); 
} 
相關問題