获得数据库中某个字段值

      string sSQL="SELECT MAX(PlanPeriod) as iMax FROM tIndRq";
SqlDataAdapter dapMax = new SqlDataAdapter(sSQL, cnn);
DataTable dtMax = new DataTable();
dapMax.Fill(dtMax);
string sMax = dtMax.Rows[0]["iMax"].ToString();
int n = string.CompareOrdinal(sMax, start);
if (n<0)
{
ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert('计划区间起始值过大!"+"\\n"+"当前最大周是:" + sMax + "周');</script>");
return;
}

这里获得的是最大值,因此只有一条记录。

1、string sMax = dtMax.Rows[0]["iMax"].ToString();
  Rows[0]["iMax"]:第一行的iMax字段。
2、int n = string.CompareOrdinal(sMax, start);比较2个日期的大小。
3、"<script>alert('计划区间起始值过大!"+"\\n"+"当前最大周是:" + sMax + "周');</script>"
  \\n就是换行符咯。

注意!就是因为这句:string sSQL="SELECT MAX(PlanPeriod) as iMax FROM tIndRq",这里的max(字段名),让dataTable.Rows.Count==0始终不成立!为什么呢?明明查出的数据是空的,一条都没有,但是dataTable.Rows.Count=1呢?网上一顿狂搜,发现这个:http://hi.baidu.com/maj0123/blog/item/e2f213a4594b4fe39152ee51.html。大意是加了聚合函数max之后,“即使没有查询到任何数据,table也会有一条为空的记录。”那么使用if(dataTable.Rows.Count-1==0)也是不行的了。

只有判断第一条记录是否为空了。if(string.IsNullOrEmpty(dtMax.Rows[0][0].ToString())) 

转载于:https://www.cnblogs.com/ibgo/archive/2012/04/04/2432241.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值