【发布时间】:2016-08-18 03:06:14
【问题描述】:
这是我项目中的代码示例。 DataSet 存储authors first name and last name 的值,具体取决于特定的书本ID。但是,一本书可以有多个作者。当用户在 TextBoxes 中键入一些值并按下保存按钮时,应启动两种方法之一。如果文本框和数据集中的值相同,则第一种方法更新数据库中现有的作者记录。如果不是 - 应该触发第二种方法,并且应该将新的作者记录添加到数据库中。
DataSet ds = GetData(queryString);
Autor autor = new Autor();
foreach (DataTable dt in ds.Tables)
{
foreach (DataRow dr in dt.Rows)
{
string firstName = dr["First_name"].ToString();
string lastName = dr["Last_name"].ToString();
if (firstName.Trim().ToUpper() == txtFirstName.Text.Trim().ToUpper() && lastName.Trim().ToUpper() == txtLastName.Text.Trim().ToUpper())
{
//updating existing author record in the database
Autor.UpdateInDatabase(autor);
}
else
{
//adding new author record in the database
Autor.AddToDatabase(autor);
break;
}
}
}
此代码仅在匹配值位于数据集的第一行时才有效 - 这显然是错误的。谁能帮助我了解如何遍历数据集、比较所有结果并根据结果 - 选择正确的方法?
【问题讨论】:
-
从 else 条件中删除你的
break看看会发生什么
标签: c# asp.net visual-studio-2015