C#中的类调用问题,新手,请赐教 刚开始接触.net,现有两个cs文件:SqlDataBase.cs,Login.cs,我在Login.cs文件中引用了SqlDataBase中的一个RunSqlReturn方法,可编译的时候总是报“上下文找不到RunSqlReturn“,我以前是搞java的,象这种情况只需要import即可,但在.net里面用using也不行,是在.net2005下面开发的,请问大家这是什么原因吗?谢谢了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 namespace问题?把你的code丢出来看看 调用RunSqlReturn方法的地方与RunSqlReturn方法所在的地方是否处于同一个namespace下面?能否贴出部分代码一看 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; } } 没见过JAVA能这么用的,你RunSqlReturn是个啥?方法?类? 如果是方法请问前面怎么没有对象?如果是类,你的代码中确实没有定义该类 是方法,问题是我加上对象一不行啊,我一个搞.net的朋友说。net2005的类文件要放到app_code下面,不知道是否正确 string str = RunSqlReturn(strSql);改为: SqlDataBase 变量名=new SqlDataBase(); string str = 变量名.RunSqlReturn(strSql); 现在报找不到类型或命名空间SqlDataBase 对了,SqlDataBase.cs是项目框架下面的一个db目录中 现在可以了,我是把SqlDataBase.cs放到了app_code目录下面,只要一拿出来就不行 SqlDataBase.cs与UserLogin.cs如果不在同一目录下,就用SqlDataBase的命名空间.SqlDataBase 变量名 = new SqlDataBase的命名空间.SqlDataBase();string str = 变量名.RunSqlReturn(strSql); 只有app_code目录下的类会自动编译 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(...) 那到底应该如何做呢,如果不放到app_code下面,采用实例编译不能通过,包括上面那位朋友说的加上db.SqlDataBase 如果你的code放到app_code下,那么你的app_code的命名空间都应该是:工程名.app_code.xxxxx,其他地方的的应该是:工程名.yyyyyy,这样就可以互相访问了 如何判断另一程序的按钮是否可用(此问题有些复杂) 有没有类似于 腾讯企业QQ的软件? 图形网格 C#中如何使系统时间转换为流水号 如何将字符的编码从UTF8转换成JIS? 请问我用ActiveReports在开发机器上预览报表时没有出现红线,为什么把项目部署在其它机器上就有红线? 在C#的textBox或richtextBox中,如何显示图片? 无法存取 'CDO.Message' 对象 是什么问题造成的呢? 急等 哪里有NET BETA2 下载啊?我找了很久了,请知者说来听听,我会给分的 mdi窗体问题 不同窗体间的事件传递
能否贴出部分代码一看
{
/// <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;
}
}
如果是方法请问前面怎么没有对象?如果是类,你的代码中确实没有定义该类
SqlDataBase 变量名=new SqlDataBase();
string str = 变量名.RunSqlReturn(strSql);
SqlDataBase的命名空间.SqlDataBase 变量名 = new SqlDataBase的命名空间.SqlDataBase();
string str = 变量名.RunSqlReturn(strSql);
{
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(...)