从数据表中选择值

时间:2015-07-08 07:27:19

标签: c#

在下面的代码中我有一个datatable我想从datatable中选择一个值并检查值是否存在,但是它会抛出错误:

  

System.Data.DataTable.Select(string)的最佳重载方法匹配有一些无效的参数“,”无法从bool转换为string

请帮我解决这个问题。

Student Details = new Student ();

DataSet ds = Details.Marks();

DataTable dt = ds.Tables[0];

if (dt.Select("RollNo =" != txtRgNo.Text.ToString()) || 
    dt.Select("Name=" != txtName.Text.ToString()))
{
}
else
{
}

4 个答案:

答案 0 :(得分:1)

Student Details = new Student ();
DataSet ds = Details.Marks();

DataTable dt = ds.Tables[0];

DataRow dr1=dt.Select("RollNo!= " + txtRgNo.Text.ToString());
DataRow dr2=dt.Select("Name !="+  txtName.Text.ToString())
if (dr1.Length>0 ||dr2.Length>0 )
{
}
else
{
}

答案 1 :(得分:0)

DataTable的“Select()”方法使用过滤器表达式。作为示例,您可以使用以下内容查询特定的RollNo,并返回DataRow数组。如果DataRow返回多个元素,则它存在。否则,它就不存在了。

        int rollNumber = 1;
        string filterExpression = string.Format("RollNo = {0}", rollNumber);
        DataRow[] rows = dt.Select(filterExpression);
        if (rows != null && rows.Length > 0)
        {
            //Exists
        }
        else
        {
            //Does not exists
        }

您的案例中的完整过滤器表达式如下:

string filterExpression = string.Format("RollNo <> {0} AND Name <> '{1}'", txtRgNo.Text.ToString(), txtName.Text.ToString());

使用DataTable.Select()的其他参考: https://msdn.microsoft.com/en-us/library/det4aw50(v=vs.110).aspx

答案 2 :(得分:0)

!=应该是您要发送到DataTable.Select的字符串过滤器的一部分,但它也不是正确的运算符。请参阅this link

您的代码应与此类似:

dt.Select("RollNo <> " & txtRgNo.Text.ToString())

答案 3 :(得分:0)

您可以使用Linq Queries选择并过滤以下任何字段:

Student Details = new Student();

DataSet ds = Details.Marks();

DataTable dt = ds.Tables[0];

if (dt.Rows.Count > 0)
{
    var result = from d in dt.AsEnumerable()
                 where d["RollNo"].ToString() == txtRgNo.Text && 
                       d["Name"].ToString() == txtName.Text
                 select new
                 {
                     RollNo = d.Field<int>("RollNo"),
                     Name = d.Field<string>("Name")
                 };

    if (result.Any())
    {
        // results is not empty ...
    }
}
相关问题