C# 如何筛选存储过程调用返回的记录?

C# 如何筛选存储过程调用返回的记录?,c#,winforms,stored-procedures,intersystems-cache-studio,C#,Winforms,Stored Procedures,Intersystems Cache Studio,我正在尝试使用存储过程在我的WinFomrs应用程序中搜索用户。我有以下代码: Regex regPattern = new Regex(searchTextBox.Text); dataGridView1.DataSource = users.GetAllUsers() .Where<users>(item => regPattern.IsMatch(item.FirstName))

我正在尝试使用存储过程在我的WinFomrs应用程序中搜索用户。我有以下代码:

Regex regPattern = new Regex(searchTextBox.Text);
dataGridView1.DataSource = users.GetAllUsers()
                            .Where<users>(item => regPattern.IsMatch(item.FirstName))
                            .ToList<users>();`
顺便说一句,我并没有使用SQL,我使用的是Caché编程语言,但它也有一个存储过程

我修好了,伙计们

我在搜索按钮中所做的是

Regex regPattern = new Regex(searchTextBox.Text);
        lstUsers.DataSource = users.GetAllUsersByUsername(searchTextBox.Text);
而不是这个

Regex regPattern = new Regex(searchTextBox.Text);
dataGridView1.DataSource = users.GetAllUsers()
                            .Where<users>(item => regPattern.IsMatch(item.FirstName))
                            .ToList<users>();`
Regex regPattern=new Regex(searchTextBox.Text);
dataGridView1.DataSource=users.GetAllUsers()
.Where(item=>regPattern.IsMatch(item.FirstName))
.ToList()`
而且

这就是我在学校里所做的

public List<GetAllUsers> GetAllUsersByUsername(string username) 
    {
        List<GetAllUsers> UserDatails = new List<GetAllUsers>();
        try
        {
            CacheConnection.ClearParameters();
            CacheConnection.AddParameter("UserName", username);
public List GetAllUsersByUsername(字符串用户名)
{
List UserDatails=新列表();
尝试
{
CacheConnection.ClearParameters();
CacheConnection.AddParameter(“用户名”,用户名);

您可以将搜索值传递给存储过程,然后在返回结果的where语句中使用类似“%search Term%”的语句,而不是从查询返回所有用户

或者,在输入for循环之前,您可以在数据表上放置一个行过滤器,以这种方式过滤结果

这个页面对过滤有很好的描述

这是一个很好的搜索示例:

它是存储过程还是常规的
SELECT
语句都无关紧要。什么是
GetAllUsers()
return?您有两个选项,a,向我们显示更多的代码,以及您期望得到的结果集,并告诉我们您需要的更多信息,或者b,更改存储过程以包含where子句并向其传递一个参数。使用不带参数和where子句的SQL Call\stored proc也是一种不好的做法。y会怎样当你达到100万行左右,你的数据非常庞大,你只为一个记录带来了100万条结果,这会给你自己造成性能问题
public List<GetAllUsers> GetAllUsersByUsername(string username) 
    {
        List<GetAllUsers> UserDatails = new List<GetAllUsers>();
        try
        {
            CacheConnection.ClearParameters();
            CacheConnection.AddParameter("UserName", username);