c# 中声明变量,并赋值

现有程序stringsql=string.Format(@"selectid,time,numwherestcd='{0}'andyear(time)={1}",this... 现有程序string sql = string.Format(@"select id,time,num where stcd = '{0}' and year(time) = {1} ", this.listBox3.SelectedValue.ToString(), yr1);
SqlCommand cmd = new SqlCommand(sql, con);
SqlDataAdapter ada = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
ada.Fill(ds);
System.Data.DataTable dt = ds.Tables[0];
int h = dt.Rows.Count;
先需要申明一个变量t使他的赋值为sql语句中的time,应该用哪种数据类型,怎么写?
谢谢高手
另外想要在后面的判断语句中比较每一条数据时间(time)的变化应当怎么写?(另加分)
if (时间无变化,这怎么写)
{
}
else{}
if (t = dr["time"])
{
string cellname5 = string.Format("{0}{1}", Convert.ToChar('a'), 4);
Range range5 = workSheet.get_Range(cellname5, cellname5);
range5.Value2 = dr["time"];
}
这样写是否正确
不是和当前时间比较,是sql语句中每一条time比较
展开
 我来答
冬0阳
2011-06-15
知道答主
回答量:15
采纳率:0%
帮助的人:28.5万
展开全部
1你问的问题比较笼统,首先你得搞清你输入的时间是个什么类型,数据库里的time一般都是datetime类型,若果你用的是控件的话,这个变量申明( DateTime t=DateTime.Parse("你输入的时间");) , 这个{1}得‘{1}’加上单引号。
2一般情况下根据时间查询不会这么写,因为你那查询的是一个点,精确到毫秒以下,最好你去了解一下convert 的用法
string sql = string.Format(@"select id,time,num where stcd = '{0}' and convert(varchar(10), year(time) ,112)=‘ {1}’ ", this.listBox3.SelectedValue.ToString(), yr1);
可以变换不同的格式,例如2011/12/01 ,2011-12-01 等等 查询当天的数据 ,可以百度一下
3没明白你第二个问题是什么意思
比较每一条,看看你是不是这个意思,我没见过这样的需求:
for (int i = 0; i < dt.Rows.Count; i++)
{
for (int j = 0; j < dt.Rows.Count; j++)
{
//如果时间相等
if (dt.Rows[j]["time"].Equals(dt.Rows[i]["time"]))
{
if (j != i)//确保比较的不是同一条
{
// 你做的处理
}
}
else
{
}
}
}
天远刘超
2011-06-15 · TA获得超过131个赞
知道答主
回答量:143
采纳率:0%
帮助的人:0
展开全部
1.
实际上这种情况你使用format有点儿不妥.采用以下方式可能会更优一些:
string sql = @"select id,time,num where stcd = @stcd";
SqlCommand cmd = new SqlCommand(sql, con);
cmd.Parameters.Add(new SqlParameter("@stcd", SqlDbType.VarChar, 50) { Value = this.listBox3.SelectedValue });//SqlDbType根据你的数据库该列的类型自行修改

2.
没太看懂你SQL中year(time)是怎么个意思.

3.比较两个时间是否相等的方法:
public bool checkTime(string dt1, string dt2) {
try
{
DateTime date1 = DateTime.Parse(dt1);
DateTime date2 = DateTime.Parse(dt2);
TimeSpan ts = date1 - date2;
if (ts.TotalMilliseconds != 0) {
return false;
}
}
catch {
return false;
}
return true;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hyx199012
2011-06-15
知道答主
回答量:24
采纳率:0%
帮助的人:0
展开全部
你获取的dt里面只有一条数据吗?只有一条的话可以这样获取
变量 DateTime t=DateTime.Parse(dt.Rows[0]["time"].ToString());

比较每一条数据时间的变化?那要看你的比较式安什么标准了是跟现在的比较的话就
if(t==DateTime.Now){}else{}
我猜你应该是写一个循环
for(int i=0;i<dt.rows.count;i++)
{
DateTime t=DateTime.Parse(dt.Rows[i]["time"].ToString());
if(t==DateTime.Now){}else{} //跟当前时间比较
if(i>0){
if(t==DateTime.Parse(dt.Rows[i-1]["time"].ToString())){}else{} //跟上一条数据的时间比较
}
}
望 采纳
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
知己知真心中5094
2011-06-15
知道答主
回答量:36
采纳率:0%
帮助的人:20.1万
展开全部
不好意思,我也不知道,只是为了完成任务才回答的,对不住了朋友。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式