【发布时间】:2016-01-18 11:23:02
【问题描述】:
我编写了一个单独的类来保存我网站的权限。我在每节课上都会打电话给这个班级。我无法从我的权限类中取回值。我将在下面向您展示我所拥有的:
权限类
public class Permissions
{
public static string selectedNumber = "";
public static string selectedName= "";
public static string selectedLocation= "";
public Info SetInfo(string selectedValue)
{
string selectInfo = "SELECT [Num] AS 'Number', [Name] AS 'Name', CONVERT(nvarchar(50),RTRIM(b.Num])) + ' - ' + CONVERT(nvarchar(50),b.Name) AS 'Location' "
+ "FROM [TBL_Info] a "
+ "left join [TBL_Where] b on (a.[ID] = b.[ID]) "
+ "WHERE a.ID = @ID";
sqlCmd = new SqlCommand(selectInfo, sqlConn);
sqlConn.Open();
sqlCmd.Parameters.AddWithValue("@ID", selectedValue);
SqlDataReader rdrInfo = sqlCmd.ExecuteReader();
if (rdrInfo.HasRows)
{
rdrInfo.Read();
selectedNumber = rdrInfo .GetSqlString(rdrInfo .GetOrdinal("Number")).ToString();
selectedName= rdrInfo .GetSqlString(rdrInfo .GetOrdinal("Name")).ToString();
selectedLocation = rdrInfo .GetSqlString(rdrInfo .GetOrdinal("Location")).ToString();
}
sqlCmd.Connection.Close();
return new Info()
{
number= selectedNumber,
name= selectedName,
location= selectedLocation
};
}
public class Info
{
public String number{ get; set; }
public String name{ get; set; }
public String location{ get; set; }
}
}
我目前正尝试在另一个类中调用它:
Classes.Permissions permission = new Classes.Permissions();
permission.SetInfo(selectedUserValue);
最终结果是,我在尝试使用来自 permission.SetInfo() 的 3 个返回值进行调用的类中设置了文本框
目前我无法退回任何东西......我知道我做错了什么,很明显。那么有人可以给我一些关于如何实现这一目标的建议吗?
【问题讨论】:
-
您没有保存要返回的对象
var info = permission.SetInfo(selectedUserValue);之后您可以使用info变量 -
对,我明白了...但是我将如何返回这 3 个对象?在列表中?
-
您应该在
using块中打开 sql 连接,以便它始终关闭。 -
如果你想返回几个
Info对象,那么集合(列表/数组等)是一个选项。如果这些对象中的每一个都有不同的含义,那么考虑创建具有Info类型的三个属性并具有适当名称的类,并返回该对象 -
所以让我们做对了:你获取一些信息的函数实际上被称为
SetInfo?你知道这有什么问题吗?