字符串数组与 c# 中的数据集值进行比较

本文关键字:比较 数据集 数组 字符串 | 更新日期: 2023-09-27 18:35:08

我有以下代码:

DataSet ds = new DataSet();
ds = cls.ReturnDataSet("RetriveData",
             new SqlParameter("@Field", "mark1"),
             new SqlParameter("@TblNm", "stud"),
             new SqlParameter("@WhereClause", "where id=124"));

有了这个,我得到以下值:

Id   mark1
124     21 
124     31
124     41 
124     23
124     35
124     56
124     67
124     54
124     45
124     63

现在从下面我得到学生的分数:

DataSet dsmark = new DataSet();
dsmark = cls.ReturnDataSet("RetriveData",
                 new SqlParameter("@Field", "marks"),
                 new SqlParameter("@TblNm", "student"),
                 new SqlParameter("@WhereClause", "where id=124"));

从上面的查询中,我得到了以下输出:

Id    marks
124    63

以下代码进行比较:

 for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
        {
            if (ds.Tables[0].Rows[i]["mark1"].ToString() != dsmark .Tables[0].Rows[0]["marks"].ToString())
            {
                Page.ClientScript.RegisterStartupScript(this.GetType(), "Message", "alert('err')", true);
            }
           else
            {
            Page.ClientScript.RegisterStartupScript(this.GetType(), "Message", "alert('No err')", true);
            }
        }
但是

当我这样做时,它会比较值,但是当每次如果条件调用并且它不满足时,它会给我消息"err"。

但是数据库中的"63"值。

so i want like it will check with the all values and then if that values is not match then and then only give me message "err".

字符串数组与 c# 中的数据集值进行比较

您的结果存储在 DataSet 内的数据表中。因此,您可以迭代第一个设置为

foreach(DataRow dro in ds.Tables[0].Rows)
{
   // your comparison logic here
}

并将该表的列 mark1 的值与dsMark.Tables[0].Rows[0]["marks"]进行比较(或您需要的任何其他比较)

更新

基于更新的问题 - 您的比较逻辑不正确。为了实现您的目标,它应该是这样的:

bool matchFound = false;
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
    if (ds.Tables[0].Rows[i]["mark1"].ToString() == dsmark .Tables[0].Rows[0]["marks"].ToString())
        matchFound = true;
}
if (matchFound)
    Page.ClientScript.RegisterStartupScript(this.GetType(), "Message", "alert('No err')", true);
else
    Page.ClientScript.RegisterStartupScript(this.GetType(), "Message", "alert('err')", true);

示例代码,

foreach(DataRow row in ds.Tables[0].Rows)
{
   //your code to compare.
}