c#求最大连续数,请高手帮忙 有个地方更正一下:textbox3中输入5,时间对话框1输入2010年09月08日18:09,时间对话框2输入2010年09月09日01:30, 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 static int Count(List<string> lst) { List<string> lst2 = new List<string>(); foreach (string x in lst) if (!lst2.Contains(x)) lst2.Add(x); return lst2.Count; }var q=from item in lst group item by item into g select new {str=g.key,number=g} OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydatabase.mdb;User Id=admin;Password=; "); conn.Open(); OleDbCommand cmd=new OleDbCommand("select ......",conn)自己改吧 参考下面的代码 DateTime time1 = DateTime.Parse("2010/9/8 18:06"); // 开始时间 DateTime time2 = DateTime.Parse("2010/9/9 1:30"); // 结束时间 int amount = 5; // 存货量 string conn = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\mydatabase.mdb"; string sql = "select [存货量] from [表名] where [时间]>=@time1 and [时间]<=@time2 order by [时间]"; OleDbCommand cmd = new OleDbCommand(sql, new OleDbConnection(conn)); cmd.Parameters.Add(new OleDbParameter("time1", time1.ToString("yyyyMMddHH"))); cmd.Parameters.Add(new OleDbParameter("time2", time2.ToString("yyyyMMddHH"))); OleDbDataAdapter adapter = new OleDbDataAdapter(cmd); DataTable dt = new DataTable(); adapter.Fill(dt); // 统计存货量连续小于指定数值的记录数 int count = 0, max_count = 0; foreach (DataRow row in dt.Rows) { if ((int)row["存货量"] < amount) count++; else { max_count = Math.Max(count, max_count); count = 0; } } MessageBox.Show(max_count.ToString()); 楼上的高手大哥:请教您,我在textbox中输入的时间是datetime类型,而数据库中像:2010093001这样的数据是文本型,可以直接用:[时间]>=@time1 and [时间]<=@time2 相比较吗?另外:@这个字符是啥意思啊,太着急了 谢谢 因为2010093001这样的文本是有规律的,长度也固定,所以可以用文本方式来比较,小的字符串表示日期也较早。@xxx表示一个参数,查询时替换成实际的值 c# 一个不懂的地方 线程在等待状态中断 关于dataGrid里的问题 datalist绑定xml文件 用C#禁用或隐藏开始菜单中的"程序"菜单. 救命啊!web.config问题,绝对路径和相对路径的设置!!!在线等候! 能不能用代码设置水晶报表中文本框的内容? 关于即时提醒的问题 有关Session的问题 winform如何实现界面(panel,tabpage)切换时,具有滚动或渐入出渐入特效? c# 如何通过IP得到域中所有客户端所安装的软件列表 The Excel To Sql2008
{
List<string> lst2 = new List<string>();
foreach (string x in lst)
if (!lst2.Contains(x)) lst2.Add(x);
return lst2.Count;
}var q=from item in lst
group item by item into g
select new {str=g.key,number=g}
conn.Open();
OleDbCommand cmd=new OleDbCommand("select ......",conn)
自己改吧
DateTime time2 = DateTime.Parse("2010/9/9 1:30"); // 结束时间
int amount = 5; // 存货量
string conn = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\mydatabase.mdb";
string sql = "select [存货量] from [表名] where [时间]>=@time1 and [时间]<=@time2 order by [时间]";
OleDbCommand cmd = new OleDbCommand(sql, new OleDbConnection(conn));
cmd.Parameters.Add(new OleDbParameter("time1", time1.ToString("yyyyMMddHH")));
cmd.Parameters.Add(new OleDbParameter("time2", time2.ToString("yyyyMMddHH"))); OleDbDataAdapter adapter = new OleDbDataAdapter(cmd);
DataTable dt = new DataTable();
adapter.Fill(dt); // 统计存货量连续小于指定数值的记录数
int count = 0, max_count = 0;
foreach (DataRow row in dt.Rows)
{
if ((int)row["存货量"] < amount)
count++;
else
{
max_count = Math.Max(count, max_count);
count = 0;
}
}
MessageBox.Show(max_count.ToString());
@xxx表示一个参数,查询时替换成实际的值