如何检查数据集中是否存在文本框中的值
本文关键字:文本 存在 是否 集中 数据集 何检查 检查 数据 | 更新日期: 2023-09-27 18:02:53
这是我项目中的代码示例。数据集根据特定的图书id存储authors first name and last name
的值。然而,一本书可以有很多作者。当用户在文本框中输入一些值并按下保存按钮时,应该启动两个方法中的一个。第一个方法更新数据库中现有的作者记录,如果文本框和数据集的值相同。如果没有,第二个方法应该被触发,新的作者记录应该添加到数据库中。
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;
}
}
}
此代码仅在匹配值在数据集的第一行时才工作-这显然是错误的。谁能帮助我了解如何循环通过数据集,比较所有的结果,并根据结果-选择正确的方法?
只需添加一个布尔标志。
bool itemFound = false;
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())
{
itemFound = true;
break;
}
}
}
if(itemFound)
Autor.UpdateInDatabase(autor);
else
Autor.AddToDatabase(autor);