请问datareader中有没有像if rs.eof and rs.bof 判断筛选的记录为空的方法,还有如何取得日期的年和月

aaron_lly 2005-04-21 07:44:36
strSQL = "select * from talbe where type="xxx""

我想判断数据库里是否有这条记录,如果没有就添加一条,如果有就跳过,用dr怎么判断?
我试着用while not dr.read(),可是不行
datareader中有没有像if rs.eof and rs.bof 判断筛选的记录为空的方法

我想取得日期中的年和月,不是单独取得,我知道有year month函数,,我想要同时取得
结果如2005-4 这样的
...全文
93 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
exing 2005-04-21
  • 打赏
  • 举报
回复
dr.read()
'然后判断dr(0)是否为空
hchxxzx 2005-04-21
  • 打赏
  • 举报
回复
datareader中,有一个很重要的地方,就是如果某个数据为null的时候,在很多地方都会引起出错,所以,在取值时,要同时判断它是不是dbnull,再根据它转换为相应的空值.
类似if rs.eof and rs.bof 这样的语句,就是
if (dr.read())
上述语句就是判断是否已经读取到尾部,未到尾部返回true,否则返回false
求取某格式的日期,可用这样
DateTime myDate = new DateTime();
string mystr = myDate.ToString("yyyyMMddhhmmss")这种方式求取,比如说楼主的要求如下实现:
mystr = myDate.ToString("yyyy-MM"),这样求取出来就是2005-04
还可以如此:
mystr = myDate.ToString("yyyy年MM月dd日hh时mm分ss秒");
I_Love_IT! 2005-04-21
  • 打赏
  • 举报
回复
SqlCommand.ExecuteScalar 方法 [C#]
返回值
结果集中第一行的第一列或空引用(如果结果集为空)。
......
备注
使用 ExecuteScalar 方法从数据库中检索单个值(例如一个聚合值)。与使用 ExecuteReader 方法,然后使用 SqlDataReader 返回的数据执行生成单个值所需的操作相比,此操作需要的代码较少。

典型的 ExecuteScalar 查询可以采用类似于下面的 C# 示例的格式:

cmd.CommandText = "select count(*) from region";
Int32 count = (int32) cmd.ExecuteScalar();
dick78 2005-04-21
  • 打赏
  • 举报
回复
if (dr.read())
{
string yearmonth;
yearmonth=DateTime.Now.Date.ToString("yyyy-MM-dd").Substring(0,7);
}
else//无记录
{

}
aaron_lly 2005-04-21
  • 打赏
  • 举报
回复
今天停电一天,,,憋死了,,,,

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧