有如下代码:.........     SqlDataReader mydr = db.GetDr(sqlstr);     while (mydr.Read())
     {
         string listring = "<li><div class='a_List'><div class='a_ListTit'><span class='more'>" + mydr[timefield].ToString() + "</span>·<a href='"+urlstring.ToString()+"?id=" + mydr[idfield] + "' class='F14'>" + SubStr(mydr[titlefield].ToString(), stringlen) + "</a></div></div></li>";
         getstring = getstring + listring;
     }
     getstring = getstring + "</ul></div>";...........    就是这里的 mydr[timefield],本身按照通常应该是,mydr[“field”]这样的方式来取值,可是,我这里的字段是需要用变量来表示的,现在程序运行到 mydr[timefield] 这里就报错,请问各位,这里应该怎么弄啊???
    请各位高手帮忙啊!!!!!!万分感激!

解决方案 »

  1.   

    (1) use column number, to instead of column name, like this:
    mydr[0]
    mydr[1]
    mydr[9]
    (2)
    string strColumn1 = null;while (mydr.Read())
    {
      str1 = mydr["titlefield"].ToString();  ... + SubStr(strColumn1, stringlen) + ... ;

      

  2.   

    看来是我没有表达清楚,我的问题主要是,mydr["titlefield"]中的字段名是未知的,是通过一个变量来提供的,我想知道,如果使用变量来构造mydr[变量名]的方式来,变量是一个包含字段名的字符串,来引用表中的相应字段的值!
      

  3.   

    先把变量赋给一个string 再用string作为变量试试
      

  4.   

    写成这样的形式试试看mydr["&titlefield&"]
      

  5.   

    mydr[timefield],这里的timefield 本身就是一个已经赋值的字符串变量!
      

  6.   

    mydr["&titlefield&"]这个不行,我用的是C#,&不是连字符,我用+号连,也不行!