Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#列表框到面板和链接按钮_C#_Database_List - Fatal编程技术网

C#列表框到面板和链接按钮

C#列表框到面板和链接按钮,c#,database,list,C#,Database,List,我试着学习C#,并从数据库中列出了我的小清单。但是,如果我不想使用listbox。如何使用面板和链接按钮制作相同的东西 我尝试过这样的操作,但无法设置panel.DataSource=cmd.ExecuteReader()或listlb.DataSource=cmd.ExecuteReader()

我试着学习C#,并从数据库中列出了我的小清单。但是,如果我不想使用listbox。如何使用面板和链接按钮制作相同的东西

我尝试过这样的操作,但无法设置panel.DataSource=cmd.ExecuteReader()listlb.DataSource=cmd.ExecuteReader()
Panel panel = new Panel();
List<LinkButton> listlb = new List<LinkButton>();

foreach (someting)
{
    LinkButton button = new LinkButton();
    button.Text = name;
    button.PostBackUrl = link
    panel.Controls.Add(button);
}

我的想法是,当我单击“名称”时,它会打开URL。

是的,它是有意这样做的

考虑将foreach中的链接按钮添加到面板中

但是我将在哪里保存我的cmd.ExecuteReader()如果我不使用新的列表框()

var list = new ListBox(); // I replace this with what?
list.DataSource = cmd.ExecuteReader();

foreach(object item in Listbox)
{
   LinkButton btn = new LinkButton();
   btn.Text = item.name;
   btn.PostBackUrl = item.link;
   panel.Controls.Add(btn);
}
Controls.Add(panel);

那是我的问题。我不知道需要将cmd.ExecuteReader保存在哪里。我没有太多的C代码Someting.DataSource=cmd.ExecuteReader()

这允许您在不使用列表框的情况下添加控件

using (var dReader = cmd.ExecuteReader()) {
    if (dReader != null) {
        while (dReader.Read()) {
            LinkButton btn = new LinkButton();
            //You should change the offset if you want to edit the query
            //In your case 0 is name and 1 is link
            btn.Text = dReader.GetString(0);
            btn.PostBackUrl = dReader.GetString(1);
            panel.Controls.Add(btn);
        }
    }
}

面板不用于数据绑定。这是一个布局控件。考虑在你的前部添加Linkbuttons到小组。谢谢!鲁本·贾昆托
using (var dReader = cmd.ExecuteReader()) {
    if (dReader != null) {
        while (dReader.Read()) {
            LinkButton btn = new LinkButton();
            //You should change the offset if you want to edit the query
            //In your case 0 is name and 1 is link
            btn.Text = dReader.GetString(0);
            btn.PostBackUrl = dReader.GetString(1);
            panel.Controls.Add(btn);
        }
    }
}