我有具有复合键的表,以便从两个不同的表中检索数据。我已经创建了存储过程来做到这一点,并且工作正常:
存储过程:
ALTER PROC dbo.spp_adm_user_user_group_sel
AS
BEGIN
SET NOCOUNT ON
SELECT
g.name AS Group_Name, u.fullname, u.designation,
u.email, u.mobile
FROM
TBL_ADM_USER_GROUP g, TBL_ADM_USER u
WHERE
g.id = u.group_id
AND (g.deleted IS NULL OR g.deleted <> 1)
END
结果是这样的:
Group_name fullname designation email mobile
Alex fffffffff Engineer [email protected] 3333333333
Jon hhhhhhhhh programmer [email protected] 020202028347
如您所见,存储过程没有任何参数。如何使用C#读取此输出并将其作为列表返回?
代码:
public List<string> GetData()
{
using (SqlConnection con = new SqlConnection(Global.Config.ConnStr))
{
string group;
DataTable dt = new DataTable();
List<string> details = new List<string>();
SqlCommand cmd = new SqlCommand("spp_adm_user_user_group_sel", con);
cmd.CommandType = CommandType.StoredProcedure;
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(dt);
foreach (DataRow dr in dt.Rows)
{
details.Add(group);
}
}
return details;
}
将您的代码更改为此
public List<yourClass> GetData()
{
using (SqlConnection con = new SqlConnection(Global.Config.ConnStr))
{
DataTable dt = new DataTable();
List<yourClass> details = new List<yourClass>();
SqlCommand cmd = new SqlCommand("spp_adm_user_user_group_sel", con);
cmd.CommandType = CommandType.StoredProcedure;
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(dt);
foreach(DataRow dr in dt.Rows)
{
yourClass obj = new yourClass();
obj.fullname= dr["fullname"].ToString();
obj.email= dr["email"].ToString();
details.Add(obj);
}
return details;
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句