注册 登录
编程论坛 ASP.NET技术论坛

如何使同一网站上的不同*.axpx.cs 文件均能使用同一个“方法”?谢谢!

foshan 发布于 2007-04-13 12:35, 1431 次点击
同一网站上有一个 check.axpx.cs 文件,里面有一个“方法”-- CheckAuthority(),如何才能实现如何使同一网站上的不同*.axpx.cs 文件均能使用这一个 CheckAuthority“方法”??
void CheckAuthority(int qx)
{
SqlConnection conn1 = new SqlConnection("data source=(local);database=********;user=sa; password=********"); //创建连接对象,并指明要连接的数据库名称、用户名、用户密码
SqlCommand orderCMD = new SqlCommand("Select Count(*) From relUserAndRole inner join relRoleAndAuthority on UserId=" + Session["userid"].ToString() + " and relUserAndRole.RoleId=relRoleAndAuthority.RoleId" + " and qx_id=" + qx, conn1);
conn1.Open();
Int32 MyCount = (Int32)orderCMD.ExecuteScalar();
conn1.Close();
if (MyCount != 0)
{
Session["Admin"] = "OK";
}
}

还有一个问题:void CheckAuthority(int qx) 中的“void” 是什么意思,怎么书上都没有介绍的???
11 回复
#2
川流不息2007-04-13 12:50
你把這個方法單獨拿出來放在一個類裡面,單獨放在一個*.cs文件中,然後在你的網頁文件中引用這個類,調用這個類的實例,去實現這個方法就行了。
#3
xiezili2007-04-13 14:08

建议看看三层或N层架构的思想。对你很有用!

#4
foshan2007-04-16 08:21
以下是引用川流不息在2007-4-13 12:50:07的发言:
你把這個方法單獨拿出來放在一個類裡面,單獨放在一個*.cs文件中,然後在你的網頁文件中引用這個類,調用這個類的實例,去實現這個方法就行了。

不是很明白,能否详细一点?是否是在单独的一个*.cs文件中创建一个类,然后为这个类构造一个方法???

#5
从小到大2007-04-16 10:52
建一个类文件
把你的方法放进去
public static void CheckAuthority(int qx)
#6
foshan2007-04-16 13:04

谢谢!现在学习类(前段时间就是直接在学习控件,走了不少弯路),对类的创建很陌生。
继续请教:我在网站有添加一个类文件--Class1.cs ,是保存在 APP_Code文件夹中的,在 public Class1() 内 放置了 public static void CheckAuthority(int qx) ,接下来应该如何操作,才能使 CheckAuthority 方法能在本网站的所有*.aspx.cs 页面中应用到?

以下是Class1.cs 的全部代码:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

/// <summary>
/// Class1 的摘要说明
/// </summary>
public class Class1
{
public Class1()
{
//
// TODO: 在此处添加构造函数逻辑
//
public bool CheckAuthority(int qx)
{
SqlConnection conn1 = new SqlConnection("data source=(local);database=****;user=sa; password=********");
SqlCommand orderCMD = new SqlCommand("Select Count(*) From relUserAndRole inner join relRoleAndAuthority on UserId=" + Session["userid"].ToString() + " and relUserAndRole.RoleId=relRoleAndAuthority.RoleId" + " and qx_id=" + qx, conn1);
conn1.Open();
Int32 MyCount = (Int32)orderCMD.ExecuteScalar();
conn1.Close();
if (MyCount != 0)
{
return true;
}
else
{
return false;
}
}

}
}

[此贴子已经被作者于2007-4-16 13:10:02编辑过]

#7
bygg2007-04-16 13:06
先实例化类:Class1 myClass = new Class1();
调用Class1类里面的CheckAuthority方法:myClass.CheckAuthority(qx);
#8
川流不息2007-04-16 13:53
如果你是靜態方法的話:public static void CheckAuthority(int qx)

調用方法:直接用類名.方法就可以調用了,不需要實例化。Class1.CheckAuthority(10);
如果不是靜態方法,就必須先實例化一個對象:
Class1 class = new Class1();
class.CheckAuthority(10);
#9
foshan2007-04-16 14:17
以下的Class1.cs类文件的代码有误,错误提示如下,如何修正啊?谢谢!
错误 1 应输入 } E:\myweb\TreeView\App_Code\Class1.cs 17 3
错误 2 应输入类型、命名空间定义或文件尾 E:\myweb\TreeView\App_Code\Class1.cs 39 1


/// <summary>
/// Class1 的摘要说明
/// </summary>
public class Class1
{
public Class1()
{
//
// TODO: 在此处添加构造函数逻辑
//
public bool CheckAuthority(int qx)
{
SqlConnection conn1 = new SqlConnection("data source=(local);database=****;user=sa; password=********"); //创建连接对象,并指明要连接的数据库名称、用户名、用户密码
SqlCommand orderCMD = new SqlCommand("Select Count(*) From relUserAndRole inner join relRoleAndAuthority on UserId=" + Session["userid"].ToString() + " and relUserAndRole.RoleId=relRoleAndAuthority.RoleId" + " and qx_id=" + qx, conn1);
conn1.Open();
Int32 MyCount = (Int32)orderCMD.ExecuteScalar();
conn1.Close();
if (MyCount != 0)
{
return true;
}
else
{
return false;
}
}

}
}
#10
IPV62007-04-16 14:22
在*.cs文件中学该函数就行了。
#11
川流不息2007-04-16 14:23
你把public bool CheckAuthority(int qx)方法寫在了構造函數裡面,試著拿出來看看是不是對的。
#12
foshan2007-04-16 15:12
OK!这样可以了……谢谢!
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
/// <summary>
/// Class1 的摘要说明
/// </summary>
public class Class1
{
public Class1()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
public static bool CheckAuthority(int qx, string userId)//检查用户的权限
{
SqlConnection conn1 = new SqlConnection("data source=(local);database=****;user=sa; password=********"); //创建连接对象,并指明要连接的数据库名称、用户名、用户密码
SqlCommand orderCMD = new SqlCommand("Select Count(*) From relUserAndRole inner join relRoleAndAuthority on UserId=" + userId + " and relUserAndRole.RoleId=relRoleAndAuthority.RoleId" + " and qx_id=" + qx, conn1);
conn1.Open();
Int32 MyCount = (Int32)orderCMD.ExecuteScalar();
conn1.Close();
if (MyCount != 0)
{
return true;
}
else
{
return false;
}
}
}
---------------------------------------------------------------------
在其它*.cs页面中调用 Class1.cs 中的 Class1类的CheckAuthority方法

……
bool MyFlag = Class1.CheckAuthority(1, Session["userid"].ToString()); // 调用Class1类里面的CheckAuthority方法检查用户的权限
……
1