Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.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# SELECT语句不返回任何内容_C#_Sql Server_Select - Fatal编程技术网

C# SELECT语句不返回任何内容

C# SELECT语句不返回任何内容,c#,sql-server,select,C#,Sql Server,Select,我的问题是,执行该语句时,结果是空的,即使在Microsoft的SQL server studio中执行该语句时,结果仍然有效 //This has two values in it (Ex: 4 and 2) string[] arr2 = groupListValues.Split('-'); List<string> userID = new List<string>(); // Connect to the database SqlConnection gco

我的问题是,执行该语句时,结果是空的,即使在Microsoft的SQL server studio中执行该语句时,结果仍然有效

//This has two values in it (Ex: 4 and 2)
string[] arr2 = groupListValues.Split('-');

List<string> userID = new List<string>();

// Connect to the database
SqlConnection gconn = new SqlConnection(ConfigurationManager.ConnectionStrings["connectinfohere"].ConnectionString);
gconn.Open();
SqlCommand command1 = new SqlCommand();
command1.Connection = gconn;
String sql = "SELECT ID FROM Users WHERE Group = @groupID";
command1.CommandText = sql;
command1.Parameters.Add(new SqlParameter("@groupID", ""));
SqlDataReader reader = command1.ExecuteReader();              

//issue is in this loop
foreach (string str in arr2)
{
    command1.Parameters["@groupID"].Value = str;
    while (reader.Read())
    {
        userID.Add(reader["ID"].ToString());
    }
}
//其中有两个值(例如:4和2)
字符串[]arr2=groupListValues.Split('-');
List userID=new List();
//连接到数据库
SqlConnection gconn=新的SqlConnection(ConfigurationManager.ConnectionString[“ConnectionInfo”].ConnectionString);
gconn.Open();
SqlCommand command1=新的SqlCommand();
command1.Connection=gconn;
String sql=“从用户中选择ID,其中Group=@groupID”;
command1.CommandText=sql;
command1.Parameters.Add(新的SqlParameter(“@groupID”,“”));
SqlDataReader=command1.ExecuteReader();
//问题就在这个循环中
foreach(arr2中的字符串str)
{
command1.参数[“@groupID”].Value=str;
while(reader.Read())
{
添加(读卡器[“ID”].ToString());
}
}
不知道问题是什么。我在SQL语句中得到的“ID”类型是
bigint
,这会导致问题吗


我在foreach循环中设置参数的原因是,对于arr2中的每个值,都对应于一个可以连接多个用户的组。因此,我需要循环使用,将用户附加到每个groupID,然后将其所有ID添加到列表中。

您的代码有两个问题:

第一个是在执行读取器后设置
@groupID
参数。要修复此问题,请在如下设置参数值后执行读取器:

foreach (string str in arr2)
{
    command1.Parameters["@groupID"].Value = str;

    using(SqlDataReader reader = command1.ExecuteReader())
    {
        while (reader.Read())
        {
            userID.Add(reader["ID"].ToString());
        }
    }
}
String sql = "SELECT ID FROM Users WHERE [Group] = @groupID";
第二个问题是,
是SQL中的一个组,因此需要用方括号将其括起来,如下所示:

foreach (string str in arr2)
{
    command1.Parameters["@groupID"].Value = str;

    using(SqlDataReader reader = command1.ExecuteReader())
    {
        while (reader.Read())
        {
            userID.Add(reader["ID"].ToString());
        }
    }
}
String sql = "SELECT ID FROM Users WHERE [Group] = @groupID";

您的代码有两个问题:

第一个是在执行读取器后设置
@groupID
参数。要修复此问题,请在如下设置参数值后执行读取器:

foreach (string str in arr2)
{
    command1.Parameters["@groupID"].Value = str;

    using(SqlDataReader reader = command1.ExecuteReader())
    {
        while (reader.Read())
        {
            userID.Add(reader["ID"].ToString());
        }
    }
}
String sql = "SELECT ID FROM Users WHERE [Group] = @groupID";
第二个问题是,
是SQL中的一个组,因此需要用方括号将其括起来,如下所示:

foreach (string str in arr2)
{
    command1.Parameters["@groupID"].Value = str;

    using(SqlDataReader reader = command1.ExecuteReader())
    {
        while (reader.Read())
        {
            userID.Add(reader["ID"].ToString());
        }
    }
}
String sql = "SELECT ID FROM Users WHERE [Group] = @groupID";

在执行读卡器之前,您不应该设置
groupID
参数值吗?嗯,groupID需要设置为arr2中的每个值。我将编辑我的帖子以添加原因。
command1.Parameters[“@groupID”].Value=str
foreach循环中这一行的用途是什么..尝试使用
SqlDataReader=command1.ExecuteReader()command1.Parameters[“@groupID”].Value=str之后的循环内的code>
是否只返回一列
GroupId
如果是,为什么不使用一行代码将数据表返回到列表
List listGroupID=dt.AsEnumerable().ToList()更改您的代码以使用
.Fill()
方法填充数据表',然后您可以获得
ItemArray
属性在执行读卡器之前,您不应该设置
groupID
参数值吗?好的,groupID需要设置为arr2中的每个值。我将编辑我的帖子以添加原因。
command1.Parameters[“@groupID”].Value=str
foreach循环中这一行的用途是什么..尝试使用
SqlDataReader=command1.ExecuteReader()command1.Parameters[“@groupID”].Value=str之后的循环内的code>
是否只返回一列
GroupId
如果是,为什么不使用一行代码将数据表返回到列表
List listGroupID=dt.AsEnumerable().ToList()更改代码以使用
.Fill()
方法填充数据表',然后可以在
ItemArray
属性中获取