2016-12-06 76 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,如果您“无法更新数据”,那么可能会发生错误,我们需要知道。详细信息很重要! –