日期:2014-05-18  浏览次数:21061 次

小妹求教!DataTable里应用SQL语句!
我用DataTable建了一张表!
DataTable dt = new DataTable("DataLayer");
  dt.Columns.Add("Map_Root");
  dt.Columns.Add("Layer_Name");
  dt.Columns.Add("LayerID");
  dt.Columns.Add("Oid");
  dt.Columns.Add("Lid");
  dt.Columns.Add("Name");
  dt.Columns.Add("longitude");
  dt.Columns.Add("latitude");

并且插入了相应的数据!
我想在DataTable里应用SQL语句怎么办啊!
或者有其他解决方法也行!请各位师哥赐教!

小妹我不胜感激!

------解决方案--------------------
dt.Select()
例如dt.Select("LayerId=4")
Select方法的篩選語句可以使用=,>,<,<>,LIKE等表達式
------解决方案--------------------
但是要Group就沒辦法了,你應該直接把select LayerID,Layer_Name,count(*) as count from DataLayer GROUP BY LayerID在數據庫中取
------解决方案--------------------
你的數據有存入數據庫嗎?
你是要將1樓的SQL查詢結果顯示在DATATABLE中嗎?
------解决方案--------------------
是否可以先在数据库里写好查询语句,再从DATATABLE里用SQL做个精确查询或者模糊查询
------解决方案--------------------
我觉得你的意思就是把你的数据库表里面的列名换一下,然后在table里面绑定!这样的话,你可以在查询语句的时候直接更改列名,如果绑定gridview等控件的时候,你把autogeneratecolumns=true,然后自动充就可以了!
SQL语句:
如: select '新列名'=旧列名 from table
或者 select 旧列名 as '新列名' from table

------解决方案--------------------
先把数据填充到datatable,然后再对datatable二次查询?

datatable二次查询是不提供group by的,不过可以实现类似功能
DataRow[] rows = dt.Select("0=0","LayerID ASC");
string str = "";
int i, j = 0;
for(i=0;i<rows.Length;i+=j)
{
str += "LayerID: "+rows[i]["LayerID"];
DataRow[] rows2 = dt.Select("LayerID="+rows[i]["LayerID"]);
for(j=0;j<rows2.Length;j++)
str += "LayerName: "+rows2[j]["LayerName"];
}
int count = i;