这是一个新手问题,我正在尝试在C#中构建一个用于为用户设置UserOrgs
属性的类(每个用户可以有多于1个)
到目前为止我有这个:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.SqlClient;
using System.Data;
/// <summary>
/// Summary description for clsRepUser
/// </summary>
public class clsUser
{
private string userid;
private List<string> userorgs;
public string UserID
{
get
{
return userid;
}
set
{
userid = value;
}
}
public List<string> UserOrgs
{
get
{
return userorgs;
}
set
{
userorgs = value;
}
}
clsConn cCon = new clsConn();
String connStr = "";
public clsUser()
{
}
public DataSet GetUserOrg(string UserID)
{
DataSet ds = new DataSet();
SqlConnection conn = new SqlConnection(cCon.getConn());
SqlCommand cmd = new SqlCommand("sp_getUserOrgs", conn);
// 2. set the command object so it knows
// to execute a stored procedure
cmd.CommandType = CommandType.StoredProcedure;
// 3. add parameter to command, which
// will be passed to the stored procedure
cmd.Parameters.Add(
new SqlParameter("@UserID", UserID));
try
{
// Open the connection and execute the Command
conn.Open();
SqlDataAdapter sqlDA = new SqlDataAdapter();
sqlDA.SelectCommand = cmd;
sqlDA.Fill(ds);
}
catch (Exception ex)
{
}
finally
{
conn.Close();
}
return ds;
}
}
如何从UserOrgs
函数填充该用户的GetUserOrg
属性?或者我离开了吗?
答案 0 :(得分:0)
我会使用一个orm,linqtosql很容易为新手。如果你坚持使用数据表和数据加载器
您需要遍历返回的结果并将返回值填充到对象中。
答案 1 :(得分:0)
我认为有三种方式:
Lazy<>
GetUserOrganizations()
。它更清楚。如果你想获得“新鲜”的组织。答案 2 :(得分:0)
您正在使用存储过程,因此很难为您提供确切的代码,但我们的想法是遍历DataSet的所有行,并使用.Add()方法将该行的元素添加到列表中。像这样:
foreach (DataRow dr in ds.Tables[0].Rows) {
userorgs.Add(dr["orgs_column"].ToString());
}
答案 3 :(得分:0)
您可以尝试使用此代码 - 基于DataSet.Tables[0].Rows
using(var conn = new SqlConnection(cCon.getConn())
{
using(var cmd = new SqlCommand("sp_getUserOrgs", conn))
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@UserID", UserID));
try
{
conn.Open();
SqlDataAdapter sqlDA = new SqlDataAdapter();
sqlDA.SelectCommand = cmd;
sqlDA.Fill(ds);
foreach (DataRow dr in ds.Tables[0].Rows)
{
userorgs.Add(dr["orgs_column"].ToString());
}
}
catch (Exception ex)
{
//treat your exception
}
}
}