运行的时候总是提示必须声明标量变量 "@MemberName"#region 判断帐号唯一性
        public bool IsReged(string MemberName)
        {
            StringBuilder strSQL = new StringBuilder();
            strSQL.Append("select count(1) From Member");
            strSQL.Append(" Where MemberName=@MemberName");
            SqlParameter[] parameters = 
                {
                    new SqlParameter("@MemberName",SqlDbType.VarChar,50)
                };
            parameters[0].Value = MemberName;
            return SQLHelper.Exists(strSQL.ToString(), parameters);
        }
        #endregionpublic static bool Exists(string SQLString)
        {
            object obj = GetSingle(SQLString);
            int CmdResult;
            if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))
            {
                CmdResult = 0;
            }
            else
            {
                CmdResult = int.Parse(obj.ToString());
            }
            if (CmdResult == 0)
            {
                return false;
            }
            else
            {
                return true;
            }
        }/// <summary>
        /// 执行一条计算查询结果语句,返回查询结果(object)。
        /// </summary>
        /// <param name="SQLString">计算查询结果语句</param>
        /// <returns>查询结果(object)</returns>
        public static object GetSingle(string SQLString, params SqlParameter[] cmdParms)
        {
            SqlConnection Conn = new SqlConnection(ConnString);
            SqlCommand Cmd = new SqlCommand();
            try
            {
                PrepareCommand(Cmd, Conn, null, SQLString, cmdParms);
                object obj = Cmd.ExecuteScalar();
                Cmd.Parameters.Clear();
                if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))
                {
                    return null;
                }
                else
                {
                    return obj;
                }
            }
            catch (SqlException Ex)
            {
                throw new Exception(Ex.Message);
            }
        }

解决方案 »

  1.   

    上面有个地方错了..
    应该是
     public static bool Exists(string SQLString, params SqlParameter[] cmdParms)
            {
                object obj = GetSingle(strSql, cmdParms);
                int CmdResult;
                if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))
                {
                    CmdResult = 0;
                }
                else
                {
                    CmdResult = int.Parse(obj.ToString());
                }
                if (CmdResult == 0)
                {
                    return false;
                }
                else
                {
                    return true;
                }
            }
      

  2.   

    strSQL.Append(" Where MemberName=@MemberName");
    改 
    strSQL.Append(" Where MemberName='@MemberName'");试试
      

  3.   

    http://community.csdn.net/Expert/topic/4769/4769721.xml?temp=.1229975
      

  4.   

    strSQL.Append(" Where MemberName=@MemberName");
    SqlParameter[] parameters = 
     {
    new SqlParameter("@MemberName",SqlDbType.VarChar,50)
     };改为:strSQL.Append(" Where MemberName='"+MemberName+"'");
    SqlParameter[] parameters = 
     {
    new SqlParameter("+MemberName+",SqlDbType.VarChar,50)
     };
      

  5.   

    q_po_o(两个人)
    你的方法我也试了.不行..
      

  6.   

    我改成存储过程...也提示那个错误...改成直接SQL语句(没有使用@MemberName这个个变量)的竟然也提示那个错误...
      

  7.   

    你的代码里有类似以下的语句吗
    foreach(SqlParameter p in cmdParms)
    {
    cmd.Parameters.Add(p);
    }
      

  8.   

    有的
     if (cmdParms != null)
                {
                    foreach (SqlParameter parm in cmdParms)
                        Cmd.Parameters.Add(parm);
                }
      

  9.   

    SqlParameter para=new SqlParameter("@MemberName",SqlDbType.VarChar,50);
    para.Value=MemberName;
    strSQL.Parameters.Add(para);乱说的~~,不要相信~~~
      

  10.   

    真TMD的奇怪了..同样的代码我在家里执行怎么就是对的.....