刚开始接触.net,现有两个cs文件:SqlDataBase.cs,Login.cs,我在Login.cs文件中引用了SqlDataBase中的一个RunSqlReturn方法,可编译的时候总是报“上下文找不到RunSqlReturn“,我以前是搞java的,象这种情况只需要import即可,但在.net里面用using也不行,是在.net2005下面开发的,请问大家这是什么原因吗?
谢谢了

解决方案 »

  1.   

    namespace问题?把你的code丢出来看看
      

  2.   

    调用RunSqlReturn方法的地方与RunSqlReturn方法所在的地方是否处于同一个namespace下面?
    能否贴出部分代码一看
      

  3.   

    public class SqlDataBase
        {
            /// <summary>
            /// 数据库操作基类
            /// 实现对Sql数据库的各种操作
            /// 创建时间:2007-05-15
            /// 创建人:
            /// </summary>
            //获取Web.Config数据库连接字符串
            private readonly string SqlConnectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;        private SqlConnection cn; //创建SQL连接
            private SqlDataAdapter sda; //创建SQL数据适配器
            private SqlDataReader sdr; //创建SQL数据读取器
            private SqlCommand cmd; //创建SQL命令对象
            private SqlParameter param;     //创建SQL参数
            private DataSet ds; //创建数据集
            private DataView dv; //创建视图                /// <summary>
            /// 打开数据库连接
            /// </summary>
            public void Open()
            {
                #region
                cn = new SqlConnection(SqlConnectionString);
                cn.Open();
                #endregion
            }        /// <summary>
            /// 执行SQL语句,并返回第一行第一列结果
            /// </summary>
            /// <param name="strSql">SQL语句</param>
            /// <returns></returns>
            public string RunSqlReturn(string strSql)
            {
                #region
                string strReturn = "";
                Open();
                try
                {
                    cmd = new SqlCommand(strSql, cn);
                    strReturn = cmd.ExecuteScalar().ToString();
                }
                catch { }
                Close();
                return strReturn;
                #endregion
            }------------------  public partial class UserLogin : System.Web.UI.Page
        { 
            protected void Page_Load(object sender, EventArgs e)
            {        }
            protected void btnLogin_Click(object sender, EventArgs e)
            {            //string strSql = "select count(*) cnt from customs_base_user where user_name=@UserName and user_pwd=@UserPwd";
                bool str = Check_UserName(this.UserName.Text.ToString(), this.UserPwd.Text.ToString());
                if (str == true)
                {
                    Response.Redirect("frame.aspx");
                }
                else
                {
                  //  Jscript jsclient = new Jscript();
                   // jsclient.Alert("登录失败!");
                }        }
            public bool Check_UserName(string UserName, string UserPwd)
            {
                string strSql = "SELECT COUNT(User_Id) FROM CUSTOMS_BASE_USER WHERE login_name='" + UserName + "' and login_pwd='" + UserPwd + "'";
                string str = RunSqlReturn(strSql);
                
                return (Equals(RunSqlReturn(strSql), "0")) ? true : false;
            }
        }
      

  4.   

    没见过JAVA能这么用的,你RunSqlReturn是个啥?方法?类?
     
    如果是方法请问前面怎么没有对象?如果是类,你的代码中确实没有定义该类
      

  5.   

    是方法,问题是我加上对象一不行啊,我一个搞.net的朋友说。net2005的类文件要放到app_code下面,不知道是否正确
      

  6.   

    string str = RunSqlReturn(strSql);改为:
     SqlDataBase 变量名=new  SqlDataBase();
     string str = 变量名.RunSqlReturn(strSql);
      

  7.   

    现在报找不到类型或命名空间SqlDataBase
      

  8.   

    对了,SqlDataBase.cs是项目框架下面的一个db目录中
      

  9.   

    现在可以了,我是把SqlDataBase.cs放到了app_code目录下面,只要一拿出来就不行
      

  10.   

    SqlDataBase.cs与UserLogin.cs如果不在同一目录下,就用
    SqlDataBase的命名空间.SqlDataBase 变量名 = new SqlDataBase的命名空间.SqlDataBase();
    string str = 变量名.RunSqlReturn(strSql);
      

  11.   

    只有app_code目录下的类会自动编译
      

  12.   

    public bool Check_UserName(string UserName, string UserPwd)
            {
                string strSql = "SELECT COUNT(User_Id) FROM CUSTOMS_BASE_USER WHERE login_name='" + UserName + "' and login_pwd='" + UserPwd + "'";
                string str = RunSqlReturn(strSql);
                
                return (Equals(RunSqlReturn(strSql), "0")) ? true : false;
            }
        }
    =======================这里的RunSqlReturn方法用得不对, 它应该是一个实现的方法, 不能直接使用, 要先实例化一个Instancee.g. 
    SqlDataBase sqlDataBase = new SqlDataBase();然后, 在你要用RunSqlReturn的地方, sqlDataBase.RunSqlReturn(...)
      

  13.   

    那到底应该如何做呢,如果不放到app_code下面,采用实例编译不能通过,包括上面那位朋友说的加上db.SqlDataBase
      

  14.   

    如果你的code放到app_code下,那么你的app_code的命名空间都应该是:工程名.app_code.xxxxx,其他地方的的应该是:工程名.yyyyyy,这样就可以互相访问了