判断datareader是否返回某个字段


     public bool ContainsField(SqlDataReader reader, string name)
     {
        for (int i = 0; i < reader.FieldCount; i++)
        {
            if (reader.GetName(i) == name)
                return true;
        }
         return false;
     }

 

 

写个方法,返回的时候用方法包一下做判断。


    public void test()
    {
       SqlConnection conn = new SqlConnection(Web.Class.Constant.HelpConstant.DBCONN_STRING);
       SqlCommand cmd = new SqlCommand();
       SqlDataReader dr;
       conn.Open();
       cmd.CommandText = "Select top 1 * From frmuser";
       cmd.CommandType = CommandType.Text;
       cmd.Connection = conn;
       dr = cmd.ExecuteReader();
        string account="";
        string noexists="";
       while (dr.Read())
       {
           if (ContainsField(dr, "Account"))
           {
               account = dr["Account"].ToString();
             //  Response.Write(account);
           }
           if (!ContainsField(dr, "heqianjin"))
           {
               Response.Write("不存在'heqianjin'这个字段");
 
           }
           if (ContainsField(dr, "heqianjin"))
           {
               noexists = dr["heqianjin"].ToString();
 
           }


              
       }
       dr.Close();
 
    }

posted on 2013-06-28 11:02  heqianjin  阅读(237)  评论(0)    收藏  举报