让我们先从一些基础知识:
这里是如何看的代码aspx页面:
private void btnUpdatePersonalDetails_Click(object sender, EventArgs e)
{
if (rndMale.Checked == true)
{
gender = "Male";
}
else
{
if (rndFemale.Checked == true)
{
gender = "Female";
}
}
PersonalDetails personDetails = new PersonalDetails();
personalDetails.UpdateDetails(txtFirstName.Text, txtLastName.Text, txtAge.Text, txtHeight.Text,txtAverageRestingHeartRate.Text, txtContactNumber.Text, txtAddress.Text, gender, GlobalUserName.username);
}
这里是Business
对象类 - >这里我会使用重命名的列。您应该在数据库中重命名您的列。
public void UpdateDetails(string firstName, string lastName, string age, string height, string avgHeartRate, string contactNumber, string address, string gender, string userName)
{
SqlCommand cmd = new SqlCommand(@"
UPDATE
PersonalDetails
SET
FirstName = @FirstName,
LastName = @LastName,
Age = @Age,
Height = @Height,
AvgHeartRate = @AvgHeartRate,
ContactNumber = @ContactNumber
Address = @Address,
Gender = @Gender
WHERE
UserName = @UserName
");
cmd.Parameters.AddWithValue("@FirstName", firstName);
cmd.Parameters.AddWithValue("@LastName", lastName);
cmd.Parameters.AddWithValue("@Age", age);
cmd.Parameters.AddWithValue("@Height", height);
cmd.Parameters.AddWithValue("@AvgHeartRate", avgHeartRate);
cmd.Parameters.AddWithValue("@ContactNumber", contactNumber);
cmd.Parameters.AddWithValue("@Address", address);
cmd.Parameters.AddWithValue("@Gender", gender);
cmd.Parameters.AddWithValue("@UserName", userName);
SqlManager.ExecuteNonQuery(cmd);
}
这里是SqlManager
类两种方法:
public static int ExecuteNonQuery(SqlCommand cmd)
{
SqlConnection conn = GetSqlConnection(cmd);
try
{
return cmd.ExecuteNonQuery();
}
catch
{
throw;
}
finally
{
conn.Close();
}
}
public static SqlConnection GetSqlConnection(SqlCommand cmd)
{
if (cmd.Connection == null)
{
SqlConnection conn = new SqlConnection(ConnectionString);
conn.Open();
cmd.Connection = conn;
return conn;
}
return cmd.Connection;
}
如果你写列名正确,这将更新您的个人资料没有问题。我在这个问题中编写了基本的数据访问层:checking user name or user email already exists。你可以检查它,如果你想。
你真的有一个名为'Height(cm)'的列吗? – 2014-12-27 13:27:28
如果你解释它应该做什么,以及收到什么错误消息(如果有),它会有所帮助。 – 2014-12-27 13:27:35
哇,这真的是如何不在C#中执行SQL。它很容易SQL注入。很容易有人不会选择性别。这太糟糕了。你有一个字段名称“高(厘米)”?哇。真。哇。 – nvoigt 2014-12-27 13:27:58