我用DataReader来判断数据库里时间字段是否和当前时间相同,如果相同,则显示一个ImangeButton,但为什么用DataReader读出来的都是重复的?表里一共只有两个记录,读出来是两个两个重复的,如:
2005-11-212005-1-52005-11-212005-1-5,麻烦大家帮我看看代码写的对不对,
ImageButton NewsIcon=((ImageButton)e.Item.FindControl("News_Icon"));
OleDbCommand Cmd=new OleDbCommand("Select Time From Studio_News",Icon_Conn);
OleDbDataReader ODR=Cmd.ExecuteReader();
while(ODR.Read())
{
string Short_DT=Convert.ToDateTime(ODR["Time"]).ToShortDateString();
Response.Write(Short_DT);
if(Short_DT==DT)
{
NewsIcon.Visible=true;
}
else
{
NewsIcon.Visible=false;
}
}

解决方案 »

  1.   

    顶 
    不太明你的意思:
    表里一共只有两个记录,读出来是两个重复的:即只读出2005-11-21或者2005-1-5
    没有分别读出值吗?
    看了你的代码,建议string Short_DT 初始化写在读取器的外面用:
    string Short_DT=String.Empty;
      

  2.   

    可能是这些写在Repeater的ItemDataBound事件里的原因吧
      

  3.   

    楼主确定读出来的两个值都是一样的吗?
    可以单步调试,选中Short_DT,按下Ctrl_Alt+Q查看读出的值到底是多少。if(Short_DT.Equals(DT))
    {
    }
    使用这个判断试一下