【发布时间】:2014-04-26 19:26:43
【问题描述】:
数据库未将信息全部存储在同一行上。在第一页上,当我单击按钮时,它会记录它,这很好,它被存储了。然后在下一页上,当我单击按钮时,它会存储信息,但在不同的行上?有什么解决办法吗?这是问题所在,代码如下。
第 1 页
public void addInformationToDatabase()
{
string Sex = ddlGender.Text;
string Name = tbxName.Text;
string DOB = tbxDOB.Text;
string connectionString = WebConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
SqlConnection Con = new SqlConnection(connectionString);
SqlCommand command = new SqlCommand();
command.Connection = Con;
command.CommandType = CommandType.Text;
command.CommandText = "INSERT INTO [User] (GenderID,Name,DOB) VALUES(@Sex,@Name,@DOB)";
command.Parameters.AddWithValue("@Sex", Sex);
command.Parameters.AddWithValue("@Name", Name);
command.Parameters.AddWithValue("@DOB", DOB);
try
{
Con.Open();
command.ExecuteNonQuery();
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
finally
{
Con.Close();
}
}
第二页
public void save()
{
string checkboxSelection = CheckBoxList1.SelectedItem.ToString();
string connectionString = WebConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
SqlConnection Con = new SqlConnection(connectionString);
SqlCommand c = new SqlCommand();
c.Connection = Con;
c.CommandType = CommandType.Text;
c.CommandText = "INSERT INTO [User] (Ans1) VALUES(@Ans1)";
c.Parameters.AddWithValue("@Ans1", checkboxSelection);
try
{
Con.Open();
c.ExecuteNonQuery();
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
finally
{
Con.Close();
}
}
任何帮助表示赞赏
【问题讨论】:
-
快速检查 - 您想在第一页为用户创建记录,并在第二页更新该用户的行吗?
-
@shree.pat18 是的,没错,但是这个信息会在下面的行中更新并生成一个新的 id,我不知道如何解决这个问题
-
在这种情况下,您需要在第二页上使用
UPDATE查询。您需要查看哪些列可用于标识要更新的记录,在页面之间传递该值,并在更新查询中添加WHERE子句以仅更新该记录。 -
我明白这一点,但我不明白的是 WHERE 子句,因为它应该知道它的更新位置,因为我在输入它的页面上对其进行编码?
-
SQL 语句不是这样工作的。它们都是相互独立的。它们没有记忆,每个 SQL 语句都应该有自己的“where”语句。它们不会被重复使用。
标签: c# asp.net sql sql-server database