在datagridview C#中显示两个主键之间的数据表

时间:2014-02-22 08:50:29

标签: c# linq datagridview

(抱歉,我的英语太差了) 我尝试在datagridview中显示数据,如下

        var db = new mydataDataContext();

        var id1 = from data in db.tbl_adads
                  where data.num1 ==int.Parse( txtnum1.Text)
                  select data.id;

        int id_1 =int.Parse(id1.ToString());

        var q = from show in db.tbl_adads
                where show.id > id_1
                select show;
        dataGridView1.DataSource =q ;

但是当我运行并使用它时,编译器会从

中获取错误
int id_1 =int.Parse(id1.ToString());

并说

  

发生了'System.FormatException'类型的未处理异常   System.Data.Linq.dll

     

其他信息:输入字符串的格式不正确。

我该怎样做我的工作?

2 个答案:

答案 0 :(得分:2)

id1的类型为IEnumerable<T>(其中T的类型为data.id)。当您在此变量上调用ToString()时,您只需获取变量的类型名称,该变量不能解析为int。

您可能只需要首先匹配结果:

var id1 = db.tbl_adads.Where(d => d.num1 == Int32.Parse(txtnum1.Text))
                      .Select(d => d.id)
                      .FirstOrDefault();

答案 1 :(得分:0)

避免在linq查询中使用Parse语句,最好在linq查询中使用它之前执行此操作

var db = new mydataDataContext();

int num1_ = int.Parse( txtnum1.Text)

var id1 = from data in db.tbl_adads
          where data.num1 ==num1
          select data.id;

int id_1 =int.Parse(id1.ToString());

var q = from show in db.tbl_adads
        where show.id > id_1
        select show;
dataGridView1.DataSource =q ;