将类添加到仅接受 1 个参数的方法中

本文关键字:参数 方法 添加 | 更新日期: 2023-09-27 18:36:43

我正在尝试学习 C#,遇到了一个问题,但我不确定它是什么。我正在尝试通过 Web 服务从实体框架工作调用存储过程。但是,我不断收到一个错误:

CS1501: No overload for method 'CreateUser' takes 1 arguments 

我的sql数据表只是一个基本表(在其他情况下工作正常)。我已将存储过程(创建用户)放入我的实体数据模型中。然后,我创建了一个没有返回值的函数(创建用户)。

这是我的Web服务中的函数.cs我正在尝试传递该函数,我得到了上述错误:

    public void AddUser(string Name, int Contact, string Email, string Password, bool Admin, string ImageURL)
    {
        UsersEntities entdb = new UsersEntities();
        NewUser newuser = new NewUser {
                      Name = Name,
                      ContactNo = Contact,
                      Email = Email,
                      Password = Password,
                      Admin = Admin,
                      ImageURL = ImageURL};
        entdb.CreateUser(newuser);
  }

由于以前的错误,我还创建了一个类:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
class NewUser
{
    public string Name { get; set; }
    public int ContactNo { get; set; }
    public string Email { get; set; }
    public string Password { get; set; }
    public bool Admin { get; set; }
    public string ImageURL { get; set; }
}

并从普通页面调用 Web 服务(我只是想测试它,所以我没有输入任何其他值):

protected void AddBtn_Click(object sender, EventArgs e)
{
    CustomWebService cws = new CustomWebService();
    cws.AddUser("testName", 12345678, "testEmail", "testPassword", true, "testImage");
}

如果有人能帮忙,将不胜感激!

提前感谢!

已编辑:添加创建用户功能:

        #region Function Imports
    /// <summary>
    /// No Metadata Documentation available.
    /// </summary>
    /// <param name="name">No Metadata Documentation available.</param>
    /// <param name="contactNo">No Metadata Documentation available.</param>
    /// <param name="email">No Metadata Documentation available.</param>
    /// <param name="password">No Metadata Documentation available.</param>
    /// <param name="admin">No Metadata Documentation available.</param>
    /// <param name="imageURL">No Metadata Documentation available.</param>
    public int CreateUser(global::System.String name, Nullable<global::System.Int32> contactNo, global::System.String email, global::System.String password, Nullable<global::System.Boolean> admin, global::System.String imageURL)
    {
        ObjectParameter nameParameter;
        if (name != null)
        {
            nameParameter = new ObjectParameter("Name", name);
        }
        else
        {
            nameParameter = new ObjectParameter("Name", typeof(global::System.String));
        }
        ObjectParameter contactNoParameter;
        if (contactNo.HasValue)
        {
            contactNoParameter = new ObjectParameter("ContactNo", contactNo);
        }
        else
        {
            contactNoParameter = new ObjectParameter("ContactNo", typeof(global::System.Int32));
        }
        ObjectParameter emailParameter;
        if (email != null)
        {
            emailParameter = new ObjectParameter("Email", email);
        }
        else
        {
            emailParameter = new ObjectParameter("Email", typeof(global::System.String));
        }
        ObjectParameter passwordParameter;
        if (password != null)
        {
            passwordParameter = new ObjectParameter("Password", password);
        }
        else
        {
            passwordParameter = new ObjectParameter("Password", typeof(global::System.String));
        }
        ObjectParameter adminParameter;
        if (admin.HasValue)
        {
            adminParameter = new ObjectParameter("Admin", admin);
        }
        else
        {
            adminParameter = new ObjectParameter("Admin", typeof(global::System.Boolean));
        }
        ObjectParameter imageURLParameter;
        if (imageURL != null)
        {
            imageURLParameter = new ObjectParameter("ImageURL", imageURL);
        }
        else
        {
            imageURLParameter = new ObjectParameter("ImageURL", typeof(global::System.String));
        }
        return base.ExecuteFunction("CreateUser", nameParameter, contactNoParameter, emailParameter, passwordParameter, adminParameter, imageURLParameter);
    }

将类添加到仅接受 1 个参数的方法中

您的 CreateUser 方法采用 6 个参数(姓名、联系人号码、电子邮件、密码、管理员、ImageUrl),但您传入用户,这是一个参数。您需要这样做:

NewUser newuser = new NewUser {
                  Name = Name,
                  ContactNo = Contact,
                  Email = Email,
                  Password = Password,
                  Admin = Admin,
                  ImageURL = ImageURL};
    entdb.CreateUser(newuser.Name, newuser.ContactNo, newuser.Email, newuser.Password, newuser.Admin, newuser.ImageURL);

将方法修改为仅采用 NewUser 参数,并在方法主体中使用属性。