string sql="select distinct plan_type from xj_plan ";
DataSet ds1= new DataSet();
OracleDataAdapter da1 = new OracleDataAdapter(sql,Conn);
da1.Fill(ds1, "xj_plan");
int TableRow_Count = ds1.Tables["xj_plan"].DefaultView.Count; for(int m = 0; m < TableRow_Count; m++)
{
DataRow dr = ds1.Tables["xj_plan"].Rows[m];
string a=dr["plan_type"].ToString();
// Response.Write(a);
if(a=="1")
{i=j;}
if(a=="2")
{i=Convert.ToInt32(j/7);}
if(a=="3")
{i=Convert.ToInt32(j/30);}

}
这里的a总是返回123,我想取得这列的值.为1\2\3,是否可以让a返回1或2或3,然后执行下面的if语句.为什么不行呢

解决方案 »

  1.   

    Response.Write(a);执行了三次,各次的显示值分别是1、2和3。Response.Write(a + "\n");
      

  2.   

    这个不是关键阿。这个只是用来看的。关键是if判断那里的a返回还是123,if语句还是不能正确执行阿
    按照Response.Write(a + "\n");虽然显示的不一样。但是取得的a的值还是一样的。
    问题是for(int m = 0; m < TableRow_Count; m++)
    {
    DataRow dr = ds1.Tables["xj_plan"].Rows[m];
    string a=dr["plan_type"].ToString();
    执行到这里的时候a取出的应该是这列的某个值,1、2、3而不是一下子取出123
      

  3.   

    循环,一共有3行数据,分别输出1、2、3。
    使用Break跳出循环。
      

  4.   

    你确定你的数据库里的xj_plan字段内的值是第一行1,第二行2,第三行3而不是只有一行123吗?
      

  5.   

    我的表名是xj_plan,字段名是plan_type。这列的值只有1、2、3,很多行。绝对没有123;
    我觉得应该是这里的问题。她循环读取库里的值。但是为什么我也说不清
    for(int m = 0; m < TableRow_Count; m++)
    {
    DataRow dr = ds1.Tables["xj_plan"].Rows[m];
    string a=dr["plan_type"].ToString();