getkernel '接受1个参数

本文关键字:1个 参数 接受 getkernel | 更新日期: 2023-09-27 18:09:45

只是掌握c#的基础知识,所以如果这是一个容易的修复/没有正确解释,我提前道歉

故事目标:制作一个连接sql

信息的UI

问题:如标题所述的错误,尽我所能尝试修复它,绕过它,等等。

我想做的是当用户选择'view kennel'时,在UI面板中显示kennel的结果

理论上应该是这样的:

狗窝名称[txtbox "example"]
Address1 [txtbox "Example"]
等等…

 private void **Kennel_Load(object sender, EventArgs e)**    <-------Error
{
  DataTable dt = _kennelDAL.GetKennel(_kennelDAL);
  if (dt.Rows.Count > 0)
  {
    DataRow row = dt.Rows[0];
    txtKennelName.Text = row["Name"].ToString();
    txtAddress1.Text = row["Address1"].ToString();
    txtAddress2.Text = row["Address2"].ToString();
    txtAddress3.Text = row["Address3"].ToString();
    txtPostcode.Text = row["Postcode"].ToString();
    txtCapacity.Text = row["Capacity"].ToString();
  }
}

这个代码的定义来自于…

    public DataTable GetKennel(string name, string address1, string address2, string address3,string postcode, int capacity)
{
    DataTable dt = new DataTable();
    //Code here
    using (SqlConnection con = new SqlConnection(ConnectionString))
    {
        SqlCommand cmd = new SqlCommand("[dbo].[Kennel_SelectByID]", con);
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.Parameters.AddWithValue("@Kennel_Name", name);
        cmd.Parameters.AddWithValue("@Kennel_Address1", address1);
        cmd.Parameters.AddWithValue("@Kennel_Address2", address2);
        cmd.Parameters.AddWithValue("@Kennel_Address3", address3);
        cmd.Parameters.AddWithValue("@Kennel_postcode", postcode);
        cmd.Parameters.AddWithValue("@Kennel_capacity", capacity);
        SqlDataAdapter sda = new SqlDataAdapter(cmd);
        sda.Fill(dt);
    }
    return dt;

再次道歉,如果这个问题有问题,只是被困在这个很好一段时间!欢呼声

getkernel '接受1个参数

你想使用

DataTable dt = _kennelDAL.GetKennel("MyName", "MyAddress1", "MyAddress2", "MyAddress3", "MyPostCode", 10);

DataTable dt = _kennelDAL.GetKennel(_kennelDAL);

你用一个参数调用它,不管_kennelDAL是什么

但是,您已经将此方法定义为具有几个参数:

public DataTable GetKennel(string name, string address1, string address2, string address3,string postcode, int capacity)

你必须传递它们(即,物理名称地址等),或者创建一个接受_kennelDAL的过载

错误准确地说明了问题:

您有一个方法-在您的情况下-需要六个参数,但您只调用一个(_kennelDAL)。

你的调用应该看起来更像这样:

DataTable dt = _kennelDAL.GetKennel(textBoxName.Text, textBoxAddress1.Text,
                                    textBoxAddress2.Text, textBoxPostCode.Text
                                    textBoxCapacity.Text);