簡體   English   中英

SELECT語句不返回任何內容

[英]SELECT statement not returning anything

我的問題是,即使在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());
    }
}

不知道是什么問題。 我在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());
        }
    }
}

第二個問題是Group是SQL中的保留關鍵字 ,因此您需要使用方括號將其包裝,如下所示:

String sql = "SELECT ID FROM Users WHERE [Group] = @groupID";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM