我想做一个插入新用户的页面 然后判断输入到textbox中的用户名是够已被使用过 
共同方法为
        public static string IfName(string newName)
        {
            StringBuilder strb = new StringBuilder();
            strb.Append("select name from admin ");
            strb.Append("where name='" + newName + "'");            return DbHelper.ExecuteScalar(CommandType.Text, strb.ToString(), null).ToString();           
        }
----------------------------------------------------------------------------------------------------
调用方法为      string new_name = admin_name.Text;
                notNull = Nen.Common.Utils.IfName(new_name);
                if (notNull == "")
                {...}
                else{javascript提示用户名已被使用}
每次执行的时候能够提示用户名已被使用 当输入新用户名时却提示“未将对象引用设置到对象的实例  return DbHelper.ExecuteScalar(CommandType.Text, strb.ToString(), null).ToString();”请问是什么原因 正确代码该怎么样写 谢谢

解决方案 »

  1.   

    检查ExecuteScalar中是否有值为NULL
      

  2.   

    空指针
    断点跟一下 看哪个值为null
      

  3.   

    很明显嘛。当新用户的时候,下面红色部分是查不到值的,即为null。
    .ToString()的时候就抛异常了。
    先判断下就可以了。
    return DbHelper.ExecuteScalar(CommandType.Text, strb.ToString(), null).ToString();   
    object result = DbHelper.ExecuteScalar(CommandType.Text, strb.ToString(), null);
    return result==null ? null : result.ToString();
      

  4.   

    return Convert.ToString(DbHelper.ExecuteScalar(CommandType.Text, strb.ToString(), null));
    或者用as