1、
//IsDigit():指定的字符是否在十进制数字
string datatSource = "Visual Studio 2010 team";
var values = from u in datatSource
where char.IsDigit(u)
select u;
foreach (var item in values)
{
Response.Write(item.ToString() + "<br />");
}
Response.Write("<br />");
//匿名函数====================
List<WebProject.classFiles.Students> list = new List<classFiles.Students>
{
new Students{ID=1,Name="jack"},
new Students{ID=2,Name="bokk"}
};
var value = from d in list
select new { d.ID, d.Name };
foreach (var item in value)
{
Response.Write(item.ID + " " + item.Name + " ");
}
Response.Write("<br />");
foreach (var item in value)
{
Response.Write(string.Format("用户ID:{0},用户姓名:{1}", item.ID, item.Name));
}
Response.Write("<br />");
//=============================
string sql = "select TOP 10 ID,ProjectName,ContractNumber from LbtProjectInfo";
DataSet ds = LearningComon.SqlHelp.ExecuteDataset(LearningComon.SqlHelp.constr, sql, CommandType.Text, null);
var querys = from infos in ds.Tables[0].AsEnumerable()
select infos;
foreach (var item in querys)
{
Response.Write("工程名称:" + item.Field<string>("ProjectName") + " 项目编号:" + item.Field<string>("ContractNumber"));
Response.Write("<br />");
}
Response.Write("<br />");
//IEnumerable对象==Field<T>()方法===========
IEnumerable<DataRow> queryss = from infos in ds.Tables[0].AsEnumerable()
select infos;
DataTable dt = queryss.CopyToDataTable<DataRow>();
var querysss = from infos in ds.Tables[0].AsEnumerable()
where infos.Field<int>("ID") < 530
select new
{
PN = infos["ProjectName"].ToString(),
CN = infos["ContractNumber"].ToString()
};
foreach (var item in querysss)
{
Response.Write("PN " + item.PN + ", CN " + item.CN);
}
Response.Write("<br />");
//Field<T>====================
//SetField<T>
var queryst = from infos in ds.Tables[0].AsEnumerable()
where infos.Field<int>("ID") < 520
select infos;
foreach (var item in queryst)
{
item.SetField<string>("ContractNumber", "ZK11111");
}
DataTable dt2 = queryst.CopyToDataTable<DataRow>();
GridView1.DataSource = dt2;
GridView1.DataBind();
Response.Write("<br />");
1、Linq to Sql语法:
http://www.cnblogs.com/yukaizhao/archive/2010/05/19/linq_to_sql_grouping_having.html
2、
http://www.cnblogs.com/libingql/
===============================================
3、
C#
//用linq to sql写一个最简单的group分组语句:
string WatchSqlPath = @"D:\1.txt";//在D盘新建一个1.txt,什么内容都不写
using (var writer = new StreamWriter(WatchSqlPath, false, Encoding.UTF8))
{
using (DataClasses1DataContext db = new DataClasses1DataContext())
{
db.Log = writer;
var querys = from s in db.LbtProjectInfo
group s by s.TestType
into sg
select new
{
Keyid = sg.Key,
counts = sg.Count()
};
foreach (var item in querys)
{
Response.Write(string.Format("ID={0} 总数= {1} <br />", item.Keyid, item.counts));
}
}
}
执行后1.txt里面的内容:
SELECT COUNT(*) AS [counts], [t0].[TestType] AS [Keyid]
FROM [dbo].[LbtProjectInfo] AS [t0]
GROUP BY [t0].[TestType]
-- Context: SqlProvider(Sql2008) Model: AttributedMetaModel Build: 4.7.2053.0
4、、
LINQ to SQL 系列五 grouping having
//用linq to sql写一个最简单的group分组语句:
string WatchSqlPath = @"D:\1.txt";//在D盘新建一个1.txt,什么内容都不写
using (var writer = new StreamWriter(WatchSqlPath, false, Encoding.UTF8))
{
using (DataClasses1DataContext db = new DataClasses1DataContext())
{
db.Log = writer;
var querys = from s in db.LbtProjectInfo
group s by new
{
s.TestType,
s.Status
}
into sg
let cn = sg.Count<LbtProjectInfo>()
orderby cn descending
select new
{
Keyid = sg.Key.TestType,
status = sg.Key.Status,
counts = cn
};
foreach (var item in querys)
{
Response.Write(string.Format("检测类型={0} 状态={1} 总数= {2}条 <br />", item.Keyid, item.status ,item.counts));
}
}
}
执行后1.txt里面的内容:
SELECT [t1].[TestType] AS [Keyid], [t1].[Status] AS [status], [t1].[value] AS [counts]
FROM (
SELECT COUNT(*) AS [value], [t0].[TestType], [t0].[Status]
FROM [dbo].[LbtProjectInfo] AS [t0]
GROUP BY [t0].[TestType], [t0].[Status]
) AS [t1]
ORDER BY [t1].[value] DESC
-- Context: SqlProvider(Sql2008) Model: AttributedMetaModel Build: 4.7.2053.0
显示效果:
相关文档:
http://www.cnblogs.com/yukaizhao/archive/2010/05/19/linq_to_sql_grouping_having.html
调用:
IEnumerable<T>类型直接转换成DataTable
IEnumerable<LbtProjectInfo> lbt= from n in dbc.LbtProjectInfo
select n;
DataTable dt = IEnumerableExtensions.AsDataTable<LbtProjectInfo>(lbt);
public static class IEnumerableExtensions
{
public static DataTable AsDataTable<T>(this IEnumerable<T> data)
{
PropertyDescriptorCollection properties = TypeDescriptor.GetProperties(typeof(T));
var table = new DataTable();
foreach (PropertyDescriptor prop in properties)
table.Columns.Add(prop.Name, Nullable.GetUnderlyingType(prop.PropertyType) ?? prop.PropertyType);
foreach (T item in data)
{
DataRow row = table.NewRow();
foreach (PropertyDescriptor prop in properties)
row[prop.Name] = prop.GetValue(item) ?? DBNull.Value;
table.Rows.Add(row);
}
return table;
}
}
=================================================