2016-12-06 51 views
1

我有一個關於使用SqlParameter帶班更新一個問題...更新數據

在我的課堂EditRecord

string strScript = ""; 
strScript = strScript + "UPDATE tbMemberInfo(FirstName,LastName,Age)"; 
strScript = strScript + "SET (FirstName = @firstname, LastName = @lastname, Age = @age)"; 
strScript = strScript + "WHERE [email protected]"; 

SqlCommand cmd; 
cmd = new SqlCommand(strScript, Connection); 
cmd.CommandTimeout = 0; 

cmd.Parameters.AddWithValue("@firstname", _members.Lastname)); 
cmd.Parameters.AddWithValue("@lastname", _members.FirstName)); 
cmd.Parameters.AddWithValue("@age", _members.Age)); 
cmd.Parameters.AddWithValue("@empID", _members.ID)); 
cmd.ExecuteNonQuery(); 

調用類的在我的表格

Class.clsMemberInfo member = new Class.clsMemberInfo(); 

member.FirstName = txtFirstName.Text; 
member.Lastname = txtLastName.Text; 
member.Age = Convert.ToInt32(txtAge.Text); 

clsMembers memberInfo = new clsMembers(); 

memberInfo.Members = member; 
memberInfo.EditREcord(cnTestConnection); 
MessageBox.Show("Success"); 

但數據沒有更新

+0

您的查詢似乎已關閉。每個字符串後需要一個空格。所以:''更新tbMemberInfo(名字,姓氏,年齡)「'另外,確保你已經打開了一個連接 – RandomStranger

+0

你的sql可能因爲在年齡之間而不高興),並且設置沒有空間,就像@age和哪裏。 – BugFinder

+1

調試您的代碼,在執行它之前獲取sql腳本字符串,然後在Sql Server上運行它。你不會感到驚訝,相信我。 – Badiparmagi

回答

1

變化看QL語句

string strScript = "UPDATE tbMemberInfo SET FirstName = @firstname, LastName = @lastname, Age = @age WHERE [email protected]"; 

更新語法

UPDATE table_name 
SET column1=value1,column2=value2,... 
WHERE some_column=some_value; 

有)中(未給出列名旁邊的表名

UPDATE

在你的代碼 _members.ID

不在您撥打方法之前設置

Class.clsMemberInfo member = new Class.clsMemberInfo(); 

member.FirstName = txtFirstName.Text; 
member.Lastname = txtLastName.Text; 
member.Age = Convert.ToInt32(txtAge.Text); 
member.ID = ??? //you need to give this value, otherwise your update will not work 
+0

關心解釋倒票!可能是我' m錯了,但有明顯的OP代碼的語法問題 – Damith

+0

我已經編輯了我的更新sql,但仍然無法更新我的數據 –

+0

@JolanMoski,如果您「無法更新數據」,那麼可能會發生錯誤,我們需要知道。詳細信息很重要! –