Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法从存储过程中联接的一个表中检索列值?_C#_Sql - Fatal编程技术网

C# 无法从存储过程中联接的一个表中检索列值?

C# 无法从存储过程中联接的一个表中检索列值?,c#,sql,C#,Sql,我有存储过程(在sql中工作正常),可以从以下两个表返回数据: 存储过程: 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

我有存储过程(在sql中工作正常),可以从以下两个表返回数据:

存储过程:

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
ALTER PROC dbo.spp\u adm\u user\u user\u group\u sel
作为
开始
不计较
选择g.name作为组名称、u.fullname、u.designation、u.email、u.mobile
来自TBL_行政用户组g,TBL_行政用户组
哪里
g、 id=u.group\u id和(g.deleted为NULL或g.deleted 1)
结束
这段代码用来访问存储过程

 public List<GroupUserList> GetData()
    {

        DataTable dt = new DataTable();
        List<GroupUserList> details = new List<GroupUserList>();
        using (SqlConnection con = new SqlConnection(Global.Config.ConnStr))
        {
            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)
            {
                GroupUserList usr = new GroupUserList();


                usr.fullname = dr["fullname"].ToString();
                usr.email = dr["email"].ToString();
                usr.name = dr["name"].ToString();
                details.Add(usr);
            }


            return details;
        }

    }
public List GetData()
{
DataTable dt=新的DataTable();
列表详细信息=新列表();
使用(SqlConnection con=newsqlconnection(Global.Config.ConnStr))
{
SqlCommand cmd=新的SqlCommand(“spp\u adm\u user\u user\u group\u sel”,con);
cmd.CommandType=CommandType.storedProcess;
SqlDataAdapter da=新的SqlDataAdapter(cmd);
da.填充(dt);
foreach(数据行dr在dt.行中)
{
GroupUserList usr=新的GroupUserList();
usr.fullname=dr[“fullname”].ToString();
usr.email=dr[“email”].ToString();
usr.name=dr[“name”].ToString();
详情。添加(usr);
}
退货详情;
}
}

我想知道为什么数据可以从TBL_ADM_USER返回,而不能从TBL_ADM_USER_GROUP返回

如果只执行sql查询会发生什么?它是否返回预期值?据我所知,您应该在两个表之间编写一个联接来检索正确的结果。

如果只执行sql查询,会发生什么?它是否返回预期值?据我所知,您应该在两个表之间编写一个联接,以检索正确的结果。

Change

usr.name = dr["name"].ToString();

改变

usr.name = dr["name"].ToString();

更新你的代码

public List<GroupUserList> GetData()
    {

        DataTable dt = new DataTable();
        List<GroupUserList> details = new List<GroupUserList>();
        using (SqlConnection con = new SqlConnection(Global.Config.ConnStr))
        {
            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)
            {
                GroupUserList usr = new GroupUserList();

                usr.name = dr["Group_Name"].ToString();
                usr.fullname = dr["fullname"].ToString();
                usr.designation = dr["designation"].ToString();
                usr.mobile = dr["mobile"].ToString();
                usr.email = dr["email"].ToString();

                details.Add(usr);
            }


            return details;
        }

    }
public List GetData()
{
DataTable dt=新的DataTable();
列表详细信息=新列表();
使用(SqlConnection con=newsqlconnection(Global.Config.ConnStr))
{
SqlCommand cmd=新的SqlCommand(“spp\u adm\u user\u user\u group\u sel”,con);
cmd.CommandType=CommandType.storedProcess;
SqlDataAdapter da=新的SqlDataAdapter(cmd);
da.填充(dt);
foreach(数据行dr在dt.行中)
{
GroupUserList usr=新的GroupUserList();
usr.name=dr[“Group_name”].ToString();
usr.fullname=dr[“fullname”].ToString();
usr.designation=dr[“designation”].ToString();
usr.mobile=dr[“mobile”].ToString();
usr.email=dr[“email”].ToString();
详情。添加(usr);
}
退货详情;
}
}
更新您的代码

public List<GroupUserList> GetData()
    {

        DataTable dt = new DataTable();
        List<GroupUserList> details = new List<GroupUserList>();
        using (SqlConnection con = new SqlConnection(Global.Config.ConnStr))
        {
            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)
            {
                GroupUserList usr = new GroupUserList();

                usr.name = dr["Group_Name"].ToString();
                usr.fullname = dr["fullname"].ToString();
                usr.designation = dr["designation"].ToString();
                usr.mobile = dr["mobile"].ToString();
                usr.email = dr["email"].ToString();

                details.Add(usr);
            }


            return details;
        }

    }
public List GetData()
{
DataTable dt=新的DataTable();
列表详细信息=新列表();
使用(SqlConnection con=newsqlconnection(Global.Config.ConnStr))
{
SqlCommand cmd=新的SqlCommand(“spp\u adm\u user\u user\u group\u sel”,con);
cmd.CommandType=CommandType.storedProcess;
SqlDataAdapter da=新的SqlDataAdapter(cmd);
da.填充(dt);
foreach(数据行dr在dt.行中)
{
GroupUserList usr=新的GroupUserList();
usr.name=dr[“Group_name”].ToString();
usr.fullname=dr[“fullname”].ToString();
usr.designation=dr[“designation”].ToString();
usr.mobile=dr[“mobile”].ToString();
usr.email=dr[“email”].ToString();
详情。添加(usr);
}
退货详情;
}
}

作为评论不是更好吗?在任何你想要的地方获得50个声誉和评论。作为一个评论不是更好吗?在任何地方都可以获得50个声誉和评论。请添加相关信息并解释建议的代码段为什么可以工作请添加相关信息并解释建议的代码段为什么可以工作请参见