这是两个datatable之间的查询 DataTable dt,dt1;
//dt 是一张表
//dt1是另外一张表
var query =
from xmldata in dt.AsEnumerable()
join sqldata in dt1.AsEnumerable()
on xmldata.Field<string>("ImgUrl") equals //Notequals
sqldata.Field<string>("test")
select new
{
XmlDataImgName = xmldata.Field<string>("ImgUrl"),
XmlDataImgId = xmldata.Field<string>("Id"),
SqlDataName = sqldata.Field<int>("tid")
};但我想用"Notequals"去做应该怎么写,是不是有别的关键字,请各位指教,谢谢!
//dt 是一张表
//dt1是另外一张表
var query =
from xmldata in dt.AsEnumerable()
join sqldata in dt1.AsEnumerable()
on xmldata.Field<string>("ImgUrl") equals //Notequals
sqldata.Field<string>("test")
select new
{
XmlDataImgName = xmldata.Field<string>("ImgUrl"),
XmlDataImgId = xmldata.Field<string>("Id"),
SqlDataName = sqldata.Field<int>("tid")
};但我想用"Notequals"去做应该怎么写,是不是有别的关键字,请各位指教,谢谢!
解决方案 »
- 请问各位:.net 2.0如何“添加服务引用”?
- 求助!!!!!!!!!!!ERROR [IM002] [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序
- 有网站开发经验人员请进
- 象vs2003 工具箱一样的东西 是怎么样写的?/
- 找几个长期兼职的朋友(广州)
- 如何在Page_Load中为<asp:repeater>中的web控件赋值,在线等问题解决马上给分
- DataGrid增加新行
- ASP.NET网页是只能以ASP.NET这个账户执行吗?那该如何访问只能以域用户账户访问的Accesss数据库?
- 请问这个错误是什么意思:“包含的前缀数目超过了最大值。最大值为 3。 ”!
- 如何让checkbox自动提交?
- 后台如何用C#对一个HTML控件的样式进行设置?
- ScriptManager.RegisterStartupScript 问题
sqldata.Field<string>("test")试试看。
from _p in product.GetTable<Product>()
where _sp.ptId != _p.ptId
select _sp;
你应该是在where里面判断Notequals
from _p in product.GetTable<Product>()
where _sp.ptId != _p.ptId
select _sp;
我希望是在DataTable对象里面操作的这样好像不行。
xmldata["ImgUrl"].ToString()!=sqldata["test"].ToString()
DataTable dt2;
var _q = from a in dt1.AsEnumerable()
from b in dt2.AsEnumerable()
where a.Field<string>(1) != b.Field<string>(1)
select new
{
a = a.Field<string>(1),
b = b.Field<string>(1)
};
DataTable dt2;
var _q = from a in dt1.AsEnumerable()
from b in dt2.AsEnumerable()
where a.Field<string>(1) != b.Field<string>(1)
select new
{
a = a.Field<string>(1),
b = b.Field<string>(1)
};
上面的代码可以运行但不是我要的结果
我这里需要使用 join 关键字。
join b in dt2.AsEnumerable() on true equals true
where a.Field<string>(1) != b.Field<string>(1)
select new
{
a = a.Field<string>(1),
b = b.Field<string>(1)
};
不行就把table的值贴出来
你想要什么样的值说明
Id Nme Success ImgUrl
1800221416 vvv true aaa.jpg
1800221071 vvv true 1.jpg
1800221164 vvv true 2.jpg
180022584 vvv true 5db3a55992f799e69e820450.jpg dt1表:
tid test
1 aaa.jpg
2 1.jpg
3 2.jpg
我想要查看的数据是dt表中ImgUrl不在dt1表中test字段中出现的数据
应该只有这条记录 180022584 vvv true 5db3a55992f799e69e820450.jpg
因为我用了两种不同的数据源,所以我就把他们分别放在两个datatable里面进行操作了。
请问怎么操作呢
DataTable dt2 = new DataTable(); dt1.Columns.Add("id", typeof(int));
dt1.Columns.Add("Nme");
dt1.Columns.Add("Success", typeof(bool));
dt1.Columns.Add("ImgUrl"); dt2.Columns.Add("tid", typeof(int));
dt2.Columns.Add("test"); DataRow dr = dt1.NewRow();
dr["id"] = 1800221416;
dr["Nme"] = "vvv";
dr["Success"] = true;
dr["ImgUrl"] = "aaa.jpg";
dt1.Rows.Add(dr); dr = dt1.NewRow();
dr["id"] = 1800221416;
dr["Nme"] = "vvv";
dr["Success"] = true;
dr["ImgUrl"] = "1.jpg";
dt1.Rows.Add(dr); dr = dt1.NewRow();
dr["id"] = 1800221416;
dr["Nme"] = "vvv";
dr["Success"] = true;
dr["ImgUrl"] = "2.jpg";
dt1.Rows.Add(dr); dr = dt1.NewRow();
dr["id"] = 1800221416;
dr["Nme"] = "vvv";
dr["Success"] = true;
dr["ImgUrl"] = "5db3a55992f799e69e820450.jpg";
dt1.Rows.Add(dr); DataRow _dr2 = dt2.NewRow();
_dr2["tid"] = 1;
_dr2["test"] = "aaa.jpg";
dt2.Rows.Add(_dr2); _dr2 = dt2.NewRow();
_dr2["tid"] = 2;
_dr2["test"] = "1.jpg";
dt2.Rows.Add(_dr2); _dr2 = dt2.NewRow();
_dr2["tid"] = 3;
_dr2["test"] = "2.jpg";
dt2.Rows.Add(_dr2); var _q = from a in dt1.AsEnumerable()
where !(from b in dt2.AsEnumerable()
select b.Field<string>("test")).Contains(a.Field<string>("ImgUrl"))
select new
{
id = a.Field<int>("id"),
Nme = a.Field<string>("Nme"),
Success = a.Field<bool>("Success"),
ImgUrl = a.Field<string>("ImgUrl")
}; foreach (var a in _q)
{
Console.WriteLine(a.id.ToString() + "\n" + a.Nme + "\n" + a.Success + "\n" + a.ImgUrl);
}
Console.Read();