【问题标题】:Pass combobox selected item as parameter value to class function in winform c#将组合框选定项作为参数值传递给winform c#中的类函数
【发布时间】:2014-03-11 15:19:35
【问题描述】:

我有一个允许用户选择月份和年份的组合框:

当我单击检查按钮时,程序会将月份和年份发送到 dbConnect。Select 类是程序执行选择查询的地方。

private void cmdSend_Click(object sender, System.EventArgs e)
{
    List<string>[] list;
    list = dbConnect.Select(month_list.SelectedItem.ToString(),year_list.SelectedItem.ToString());

    //submit the value month and year to dbConnect.select class.
}  

我已经逐行调试了代码并找出了该行

list = dbConnect.Select(month_list.SelectedItem.ToString(),year_list.SelectedItem.ToString());  

确实持有该值。它假设将值作为参数月份和年份传递给 dbConnect.select 类。

public List<string>[] Select(string month,string year)
{
    string query = "SELECT * FROM page_counter WHERE month = @month AND year = @year;";
    //some operations
}  

但是当我开始调试时,我发现 public List[] Select(string month,string year) 没有任何值。

如果我的代码有任何错误,有人可以纠正我吗?

【问题讨论】:

  • 请澄清一下,您当前的代码有什么问题。函数Select()monthyear 参数是否为空?如果是这种情况,则原因很可能在组合框中。您需要展示它是如何设置和填充的。
  • 如何绑定combobox中的列表?

标签: c# winforms combobox


【解决方案1】:

如下修改你的代码并执行相应的操作

private void cmdSend_Click(object sender, System.EventArgs e)
{   
MessageBox.show(month_list.SelectedItem.ToString());
MessageBox.show(month_list.SelectedText.ToString());
MessageBox.show(month_list.SelectedValue.ToString());

MessageBox.show(year_list.SelectedItem.ToString());
MessageBox.show(year_list.SelectedText.ToString());
MessageBox.show(year_list.SelectedValue.ToString());
}  

我想现在你可以理解使用什么值了。

【讨论】:

  • 谢谢,但是当我测试代码时,我选择了月份“JAN”和年份“2013”​​,然后单击 cmdSend_Click 按钮,列表实际上保存了该值。但是当它调用 dbConnect.Select 类时,如果发现 List[] Select(string month,string year) 没有任何值。所以我假设这个类没有获取 cmdSend_Click 的参数形式。你知道为什么吗?
  • 所以 DBconnect 是您的类,而 select 是 dbconnect 类中的一个方法,您尝试将值硬编码为 dbconnect.select("1","2");并确保 1 和 2 到达 select() 方法并通知我结果
  • 我尝试过去像 dbconnect.select("1","2"); 这样的值但还是发现select类是空的,没有值。
  • string query = "SELECT * FROM page_counter WHERE month="+month+" AND year = "+year+";";或者修改查询初始化代码
  • 在我上面的问题中是我的班级 public List[] Select(string month,string year)。我将值传递给类的方法是否正确?
【解决方案2】:

SelectedItem 应该来自您的组合框,而不是来自列表

   private void cmdSend_Click(object sender, System.EventArgs e)
    {
        List<string>[] list;
        list = dbConnect.Select(cmdSendMonth.SelectedItem.ToString(),cmbYear.SelectedItem.ToString());

        //submit the value month and year to dbConnect.select class.
    } 

【讨论】:

  • 谢谢,但我认为这不是问题所在。因为当我逐行调试时,列表确实包含值。只有在 public List[] Select(string month,string year) 中没有价值。好像没有参数传递给类。
  • dbConnect 中有什么?
  • dbConnect 是连接数据库的类。
猜你喜欢
  • 2021-09-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-17
  • 2013-01-25
  • 1970-01-01
  • 2020-03-06
相关资源
最近更新 更多