2017-08-25 49 views
-3

我正在開發wpf應用程序,我需要插入和更新數據。我已經成功插入數據,但是當我執行更新時出現錯誤,例如期望參數'@id',這是未提供的。我有正常,但仍然給所有的事情我得到同樣的錯誤如何解決期望參數'@id',這是不提供

我已經給下面

我的代碼

存儲過程的代碼

Alter procedure Updatedata 
( 
    @id VARCHAR(10), 
    @name VARCHAR(10), 
    @address VARCHAR(10), 
    @city varchar(20), 
    @state VARCHAR(20), 
    @country varchar(10) 

) 
AS 
BEGIN 
update Employee set name= @name, address = @address, city = @city , state= @state, country = @country where [email protected] 
END 

C#代碼

private void btn_Update_Click(object sender, RoutedEventArgs e) 
    { 
     var con = new SqlConnection(strConnString); 

     SqlCommand cmd = new SqlCommand("Updatedata", con); 
     con.Open(); 
     cmd.Parameters.AddWithValue(@"id", txt_id.Text); 
     cmd.Parameters.AddWithValue(@"name", txt_name.Text); 
     cmd.Parameters.AddWithValue("@address", txt_address.Text); 
     cmd.Parameters.AddWithValue("@city", txt_city.Text); 
     cmd.Parameters.AddWithValue("@state", txt_state.Text); 
     cmd.Parameters.AddWithValue("@country", txt_country.Text); 
     int row = cmd.ExecuteNonQuery(); 

     con.Close(); 
    } 
+9

**'@「id''** <> **'@ id' **相同​​的名稱 – lad2025

+1

您的名字也有相同的語法問題。 –

+1

@ lad2025 - 當我看到錯誤時,我可能會笑到難:D –

回答

3

你的問題是在這裏:

cmd.Parameters.AddWithValue(@"id", txt_id.Text); 

應該

cmd.Parameters.AddWithValue("@id", txt_id.Text); 

當你在它,也改變這一點:

cmd.Parameters.AddWithValue(@"name", txt_name.Text); 

cmd.Parameters.AddWithValue("@name", txt_name.Text); 

您還需要設置的cmdCommandTypeStoredProcedure

默認情況下,它以文本形式執行它。

cmd.CommandType = CommandType.StoredProcedure 
+1

同名問題。 –

+0

我已經改變了一切,但仍然得到同樣的問題 –

+0

@NagarajanM - 正如我在評論中所說,你還需要'cmd.CommandType = CommandType.StoredProcedure'(或類似的 - 免費鍵入沒有intellisense) –

相關問題