c#-select语句从数据库返回多条记录

oxcyiej7  于 2021-08-09  发布在  Java
关注(0)|答案(0)|浏览(251)

我正在用asp.net做一个小项目。任务的一部分是我从sql server数据库检索信息。到目前为止,我只需要一个记录,所以我使用了以下代码:

public string getTwitterSearchHistory(string userId)
{
    if (userId != null)
    {
        List<string> history = new List<string>();
        string result = "";
        SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString);
        conn.Open();

        SqlCommand command = new SqlCommand("SELECT searchedTerm FROM dbo.TwitterSearchHistoryModels WHERE userId = @userId", conn);
        command.Parameters.AddWithValue("@userId", userId);
        using (SqlDataReader reader = command.ExecuteReader())
        {
            if (reader.Read())
            {
                result = String.Format("{0}", reader["searchedTerm"]);
            }
        }

        conn.Close();
        return result;
    }
    return "";
}

现在,当我想从一个记录中检索一个属性时,这段代码工作得非常完美。但是,现在我需要从多个属性中检索一个属性。意思是,假设我有以下几点:

ID | UserId | searchedTerm
--------------------------------
1  | 1      | hello
2  | 1      | anothersearchedterm
3  | 1      | this is a term

如何检索userid 1的所有searchedTerm并将它们存储在某种数组中?
谢谢!

**编辑:我向控制器中的一个方法发送一个ajax请求。

function loadHistory() {
    var detailsForGet = {
        userId: sessionStorage.getItem("userName")
    }
    $.ajax({
        type: "GET",
        url: "https://localhost:44326/User/getTwitterSearchHistory",
        data: detailsForGet,
        success: function (data) {
            console.log(data)
        }
    });
}

现在,在控制器中,我有一个从本地数据库执行select查询的方法:

public List<string> getTwitterSearchHistory(string userId)
{
    if (userId != null)
    {
        List<string> history = new List<string>();
        string result = "";
        SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString);
        conn.Open();
        SqlCommand command = new SqlCommand("SELECT searchedTerm FROM dbo.TwitterSearchHistoryModels WHERE userId = @userId", conn);
        command.Parameters.AddWithValue("@userId", userId);
        using (SqlDataReader reader = command.ExecuteReader())
        {
            while (reader.Read())
            {
                history.Add(String.Format("{0}", reader["searchedTerm"]));
            }
        }

        conn.Close();
        return history;
    }
    return null;
}

现在,在调试时,我可以看到变量history保存了很好的值,但是,当我成功地调用了w ajax时,当我尝试打印数据时,得到了以下结果:system.collections.generic.list`1[system.string]。。我做错什么了?谢谢

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题