我试图在GridView中显示excel表和sql server数据表之间的重复行。
这是我的代码:
var matched = (from table1 in dt4.AsEnumerable()
join table2 in oltlb.AsEnumerable() on
table1.Field<int>("ID") equals table2.Field<int>("ID")
where table1.Field<string>("Data") == table2.Field<string>("Data")
select table1);
DataTable dthi5 = new DataTable();
dthi5 = matched.CopyToDataTable();
我可以在GridView中显示var的值吗?
答案 0 :(得分:1)
是的,它可以填充您的变量。 (在这种情况下,你必须把它.ToList()
)
您必须明白var
是强类型的!它不像在php中那样可以切换变量的类型。
尝试写作
var x = null;
在Visual Studio中。会有错误!
您的var
每次必须声明为类型安全。让程序员不必总是在变量前编写长类型名称只是一个简短的咒语。因此,您的var
就是IEnumerable<T>
。
答案 1 :(得分:1)
试试这个
var matched = (from table1 in dt4.AsEnumerable()
join table2 in oltlb.AsEnumerable() on
table1.Field<int>("ID") equals table2.Field<int>("ID")
where table1.Field<string>("Data") == table2.Field<string>("Data")
select table1);
DataTable dthi5 = new DataTable();
dthi5 = matched.CopyToDataTable();
myGridView.DataSource = dthi5;
myGridView.DataBind();
或者
myGridView = matched.ToList();
myGridView.DataBind();
答案 2 :(得分:0)
你绝对可以将var绑定到gridview。
我们假设有一个包含三个字段的员工表
emp_id emp_fname emp_lname
第一种方式:如果您将整个表或特定记录提供给var,那么列表将起作用...
一旦您建立了与sql server的成功连接,employees就是一个数据上下文类。
var result = from alias in dc.employees
where alias.emp_id == id --(this is the passed parameter)
您也可以手动指定ID,例如:
where alias.emp_id == 5
select alias;
将选择id = 5的整个员工记录。
您现在可以将其绑定到gridview
gridview1.datasource = result.tolist();
gridview1.databind();
如果你给整张桌子,那么也可以使用tolist
var result = from alias in dc.employess
select alias;
gridview1.datasource = result.tolist();
gridview1.databind();
如果您选择多个列,那么tolist将无效。你需要返回对象。
该方法已在class1中定义。
public static object returnquery()
{
dcdatacontext dc = new dcdatacontext();
var result = from alias in dc.employees
where alias.emp_id == 5
select new
{
alias.emp_fname,
alais.emp_lname
};
return result;
}
你需要抓住这个对象。
object obj = new class1.returnquery();
gridview1.datasource = obj;
gridview1.databind();
或者您可以尝试一下,看看它是否有效。我实际上没有尝试过这个。
var result = from alias in dc.employees
where alias.emp_id == 5
select new
{
alias.emp_fname,
alias.emp_lname
};
gridview1.datasource= result.object();
gridview1.databind();