这是我的方法 #region 查看公司介绍中的某项信息
        /// <summary>
        /// 查看公司介绍中的某项信息
        /// </summary>
        /// <param name="where">具体信息项 例如 Company_Cooperation(合作方式)等</param>
        /// <returns>返回要查看的信息</returns>
        public string GetCompanyInfoByWhere(string where)
        {
            string sql = "select "+where+" from CompanyInfo where Company_Id=2";
            //SqlParameter[] paramters = 
            //{
            //    new SqlParameter("@where",where)
            //};
            string result="";
             SqlDataReader sdr = DbHelperSQL.ExecuteReader(sql);
             if (sdr.Read())
             {
                 result = sdr[0].ToString();
                 sdr.Close();
             }
             else 
             {
                 sdr.Close();
             }
            return result;
        }
        #endregion
这样能正常的取出"Where"字段中,数据库中的数据。
但是我修改成赋值的形式,就不知为什么取不出来的。
以下是取不出来的#region 查看公司介绍中的某项信息
        /// <summary>
        /// 查看公司介绍中的某项信息
        /// </summary>
        /// <param name="where">具体信息项 例如 Company_Cooperation(合作方式)等</param>
        /// <returns>返回要查看的信息</returns>
        public string GetCompanyInfoByWhere(string where)
        {
            string sql = "select @where from CompanyInfo where Company_Id=2";
            SqlParameter[] paramters = 
            {
                new SqlParameter("@where",where)
            };
            string result="";
             SqlDataReader sdr = DbHelperSQL.ExecuteReader(sql, paramters);
             if (sdr.Read())
             {
                 result = sdr[0].ToString();
                 sdr.Close();
             }
             else 
             {
                 sdr.Close();
             }
            return result;
        }
        #endregion

解决方案 »

  1.   

    额,理解错了,查出来的就是"where"的值…而不是数据库中,该字段的值(自己把自己绕了)
      

  2.   

    把sql改成这样试试行不行
    string sql = "exec('select '+ @where +' from CompanyInfo where Company_Id=2')";
      

  3.   

    会不会是参数定义错了,我定义sql参数的时候一般都要定义类型的,比如:
    myCmd.Parameters.Add(new SqlParameter("@loginName", SqlDbType.VarChar, 20));
    myCmd.Parameters["@loginName"].Value = loginName;
    定义好加入sqlcomand对象中