public static string ValidateDataRow_S(DataRow row, string colname)
        {
            if (row[colname] != DBNull.Value)
                return row[colname].ToString();
            else
                return System.String.Empty;
        }
怎么判断返回的是System.String.Empty
比如说类admin中的password为空值,不是null值
我admin.password=="" 或者 admin.password==null 或者 admin.password.length==0都不行,不知道怎么回事

解决方案 »

  1.   

    如果是空值,admin.password == string.Empty 结果为true
    如果为null asmin.password == null 结果为 true
    如果在DataGrid中,  == DBNull.Value 结果为 true还有一种可能,看上去为空,实际上是很多空白字符的组合,这种情况发生在数据类型为char的列中
    所以上面的任何比较代码都会为false
    所以,需要使用下面的代码判断
    admin.password.Trim() == string.Empty;
      

  2.   

    下面三种情况都没有判断出来
    if (admin.password == adminPassword || admin.password=="")
    {
    }if (admin.password == adminPassword || admin.password==null)
    {
    }if (admin.password == adminPassword || admin.password.length==0)
    {
    }刚刚二楼那样子也没判断出来
    if (admin.password == adminPassword || admin.password.Trim() == string.Empty)
    {
    }
      

  3.   

    if(!string.IsNullOrEmpty(ref))
    {
      //不為空時
    }
    else 
    {
      //為空時
    }
      

  4.   

    都不行,因为我的admin.password是调用了下面这个函数返回的
    public static string ValidateDataRow_S(DataRow row, string colname) 
            { 
                if (row[colname] != DBNull.Value) 
                    return row[colname].ToString(); 
                else 
                    return System.String.Empty; 
            } 
    this._password = GetSafeData.ValidateDataRow_S(dr, "password");
      

  5.   

    if (admin.password == adminPassword || Convert.IsDBNull(admin.password))
    {
    }
    这样子也不行,不知道到底怎么获取返回的System.String.Empty
      

  6.   

    Try:if (row[colname] == DBNull.Value ||  row[colname].ToString().Trim()=="")
    {
       return System.String.Empty; 
    }
    else
    {
      return row[colname].ToString().Trim(); 
    }
      

  7.   

    建议把if (row[colname] != DBNull.Value)   
    改成  if (!string.IsNullOrEmpty(row[colname].toString())&&row[colname].toString().Trim()!="0")
      

  8.   

    那么此时调试this._password的值会得到什么???
      

  9.   

    if(!String.IsNullOrEmpty("值")
    {
       //....
    }
      

  10.   


            string str = System.String.Empty;
            if (string.IsNullOrEmpty(str))
                Response.Write("System.String.Empty");
            else
                Response.Write("error");Empty 你不会判断,你返回null 不可以么 ? 就认准Empty 了 ? 
    都告诉你怎么判断了,你自己不去试哪位 版主大仙啊 ~  这也推荐
      

  11.   


    现在的CSDN啊,什么问题都推荐,莫非这里也有潜规则?!
      

  12.   

    看首页是瑶妹子推荐的  -_-!!if (admin.password == adminPassword || String.IsNullOrEmpty(admin.password.Trim())) 

    }楼主你可以断点调试下
    看看admin.password 和adminPassword 分别是什么东西调试看一下不就知道了么
    很简单的事情为什么不调试下呢
      

  13.   

    无语了,从楼主的代码判断
    admin.password 根本不等于 string.Empty把下面代码的执行结果贴出来再说吧:
    void test() {
      string s = admin.password;
      if(s == null)
        Response.Write("Null");
      else if(s == string.Empty)
        Response.Write("Empty");
      else if(s.trim() == string.Empty)
        Response.Write("Space");
      else
        Response.Write(Server.HtmlEncode(s));
    }
      

  14.   

    考虑到可能含有一些不可见字符,把上面的代码修改一下void test() {
      string s = admin.password;
      if(s == null)
        Response.Write("Null");
      else if(s == string.Empty)
        Response.Write("Empty");
      else if(s.trim() == string.Empty)
        Response.Write("Space");
      else {
        s = s.Replace("\n","[Enter]").Replace("\t","[Tab]");
        Response.Write(Server.HtmlEncode(s));
      }
    }
      

  15.   

    回21楼的,如果admin.password有值的话,就返回该值,如果没有值,为空的话,什么都没有返回
      

  16.   


    /// <summary>
            /// 判断对象是否为空或NULL,如果是空或NULL返回true,否则返回false
            /// </summary>
            /// <param name="comeStr">要检测的字符串</param>
            /// <returns></returns>
            public static bool IsNullOrEmpty(object comeStr)
            {
                bool tempFlag = true;
                if (comeStr != null)
                {
                    string tempStr = comeStr.ToString().Trim();
                    if (tempStr.Length > 0)
                        tempFlag = false;
                }
                return tempFlag;
            }
      

  17.   

    string.IsNullOrEmpty()
    该方法并不能判断一连串空格的情况
      

  18.   

    判断string.Trim()是否为""应该也可以能判断出来的啊!~不知道自己说的对不对!