无法从其他类分配返回值

本文关键字:分配 返回值 其他 | 更新日期: 2023-09-27 18:27:34

我对C#有点陌生,似乎在为我在控制器中创建的列表赋值时遇到了问题。我试图从一个返回列表值的repo类中分配一个值。

我收到的信息是

没有给出与"Repo.SearchClient(ClientInfo)"所需的形式参数"client"相对应的参数

mY控制器:

    public ActionResult SearchResult()
    {
        Repo repo = new Repo();
        List<ClientInfo> searchResult = new List<ClientInfo>();
        searchResult = repo.SearchClient(); // error here 
        JsonResult result = new JsonResult();
        result.Data = searchResult;
        result.JsonRequestBehavior = JsonRequestBehavior.AllowGet;
        return result;
    }

返回列表值的我的Repo类

  public List<ClientInfo> SearchClient(ClientInfo client)
    {
        var clientName = client.clientName;
        List<ClientInfo> clientResult = new List<ClientInfo>();
        using (SqlConnection conn = new SqlConnection(connectionString))
        {
            conn.Open();
            try
            {
                SqlCommand command = new SqlCommand("SELECT * FROM Table_1 WHERE ClientName =@clientName", conn);
                command.Parameters.AddWithValue("@clientName", clientName);
                SqlDataReader reader = command.ExecuteReader();
                    while (reader.Read())
                    {
                        ClientInfo data = new ClientInfo();
                        data.clientName = reader["ClientName"].ToString();
                        data.clientNumber = reader["ClientNumber"].ToString();
                        data.clientType = reader["ClientType"].ToString();
                        clientResult.Add(data);
                    }                    
            }
            catch
            {
                throw;
            }
        }
        return clientResult;
    }

我的型号

namespace ClientSearch.Models
{
    public class ClientInfo
    { 
        public string clientName { get; set; }
        public string clientNumber { get; set; }
        public string clientType { get; set; }
    }
}

无法从其他类分配返回值

您的搜索客户端方法需要ClientInfo作为参数。

public List<ClientInfo> SearchClient(ClientInfo client) // required parameter

控制器中的操作在调用方法时没有提供此功能。

List<ClientInfo> searchResult = new List<ClientInfo>();
    searchResult = repo.SearchClient(); // no parameter

这将在编译时出错。

要解决这个问题,你需要做一些类似的事情:

var clientInfo = new ClientInfo()
    {
        ClientName = "test client"
    }; // create a new ClientInfo object
var clientList = SearchClient(clientInfo); // call the search method and assign the results to a list