下面是我的项目代码示例。 DataSet存储的值为authors first name and last name
,具体取决于特定的书籍ID。但是,一本书可以有很多作者。当用户在文本框中键入一些值并按下保存按钮时,应启动两种方法之一。如果来自文本框和数据集的值相同,则第一种方法更新数据库中现有的作者记录。如果不是,则应触发第二种方法,并将新的作者记录添加到数据库中。如何检查TextBox中的值是否存在于DataSet中?
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;
}
}
}
此代码仅适用于匹配值位于第一个数据集行时 - 这显然是错误的。任何人都可以帮助我理解如何遍历数据集,比较所有结果并根据结果 - 选择正确的方法?
从其他条件中删除您的“break”,看看会发生什么 – Shyju