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;
再次道歉,如果这个问题有问题,只是被困在这个很好一段时间!欢呼声
你想使用
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);