(抱歉,我的英语太差了) 我尝试在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
其他信息:输入字符串的格式不正确。
我该怎样做我的工作?
答案 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 ;