Winforms有两个组合框点击按钮我应该显示结果 [英] Winforms have two combobox in click of a button i should display result

查看:54
本文介绍了Winforms有两个组合框点击按钮我应该显示结果的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有2个组合框

一次装载班次

第二次加载部门



点击一下按钮我写的查询基于该查询它应该显示结果。但它只适用于两个组合框的第一个值而不适用于其他组合框。有什么问题

请帮帮我



I have 2 combobox
one loads shift
second loads Department

on the click of a button i written query based on that query it should display result. but it only works for first values of two combobox not for others. what is the problem
please help me

public void DisplayEmployee()
        {
            //try
            //{
                dtObj.Clear();
                flowLayoutPanel1.Controls.Clear();
                string s = CmbShiftdetails.Text;//.SelectedItem.ToString();
                string sql_displayemp = string.Format("SELECT EmployeeMaster.EmployeeId, EmployeeMaster.EmployeeCode, EmployeeMaster.EmployeeName, EmployeeMaster.Address, EmployeeMaster.PhoneNo, EmployeeMaster.Emailid, EmployeeMaster.Designation, EmployeeMaster.Photo, DepartmentMaster.DepartmentId, DepartmentMaster.DepartmentName, ShiftMaster.ShiftId, ShiftMaster.ShiftName FROM DepartmentMaster INNER JOIN EmployeeMaster ON DepartmentMaster.DepartmentId = EmployeeMaster.DepartmentId INNER JOIN ShiftMaster ON EmployeeMaster.ShiftId = ShiftMaster.ShiftId where ShiftMaster.ShiftName='{0}' and DepartmentMaster.DepartmentName='{1}'", CmbShiftdetails.Text, CmbDepartment.Text);
                
               
                
                dtObj = obj.NonTransaction(sql_displayemp);
                if (dtObj.Rows.Count > 0)
                {
                    TableLayoutPanel tlpobj = new TableLayoutPanel();
                    tlpobj.Name = "Emp";
                    tlpobj.CellBorderStyle = TableLayoutPanelCellBorderStyle.OutsetDouble;
                    tlpobj.AutoSize = true;

                    string[] headers = { "EmployeeCode", "EmployeeName", "Address", "PhoneNo", "Emailid", "Designation", "Photo", "Edit", "Delete" };
                    for (int i = 0; i < headers.Length; i++)
                    {
                        Label lbl = new Label();
                        lbl.Text = headers[i];
                        tlpobj.Controls.Add(lbl, i, 0);
                    }
                    for (int i = 0; i < dtObj.Rows.Count; i++)
                    {
                        Button btnedit = new Button();
                        btnedit.Text = "Edit";
                        btnedit.Name = "e_" + dtObj.Rows[i]["EmployeeId"].ToString();
                        btnedit.Click += new EventHandler(btnedit_Click);
                        btnedit.Width = 60;

                        Button btndelete = new Button();
                        btndelete.Text = "Delete";
                        btndelete.Name = "d_" + dtObj.Rows[i]["EmployeeId"].ToString();
                        btndelete.Click += new EventHandler(btndelete_Click);
                        btndelete.Width = 60;

                        Label lblempid = new Label();
                        lblempid.Text = dtObj.Rows[i]["EmployeeId"].ToString();
                        lblempid.Name = "lblempid" + dtObj.Rows[i]["EmployeeId"].ToString();
                        lblempid.Visible = false;

                        Label lblempcode = new Label();
                        lblempcode.Text = dtObj.Rows[i]["EmployeeCode"].ToString();
                        lblempcode.Name = "lblempcode" + dtObj.Rows[i]["EmployeeId"].ToString();

                        Label lblempname = new Label();
                        lblempname.Text = dtObj.Rows[i]["EmployeeName"].ToString();
                        lblempname.Name = "lblempname" + dtObj.Rows[i]["EmployeeId"].ToString();

                        Label lbladdress = new Label();
                        lbladdress.Text = dtObj.Rows[i]["Address"].ToString();
                        lbladdress.Name = "lbladdress" + dtObj.Rows[i]["EmployeeId"].ToString();

                        Label lblphone = new Label();
                        lblphone.Text = dtObj.Rows[i]["PhoneNo"].ToString();
                        lblphone.Name = "lblphone" + dtObj.Rows[i]["EmployeeId"].ToString();

                        Label lblemail = new Label();
                        lblemail.Text = dtObj.Rows[i]["Emailid"].ToString();
                        lblemail.Name = "lblemail" + dtObj.Rows[i]["EmployeeId"].ToString();

                        Label lbldesignation = new Label();
                        lbldesignation.Text = dtObj.Rows[i]["Designation"].ToString();
                        lbldesignation.Name = "lbldesignation" + dtObj.Rows[i]["EmployeeId"].ToString();

                        
                        

                        PictureBox pbemp = new PictureBox();
                        pbemp.SizeMode = PictureBoxSizeMode.StretchImage;
                        try
                        {
                            pbemp.Image = Image.FromStream(new MemoryStream(((byte[])dtObj.Rows[i]["Photo"])));
                        }
                        catch { }
                        pbemp.Name = "pbemp" + dtObj.Rows[i]["EmployeeId"].ToString();

                        ["EmployeeId"].ToString();

                       ["EmployeeId"].ToString();
                        // tlpobj.Controls.Add(lblempid, 0, i + 1);
                        tlpobj.Controls.Add(lblempcode, 0, i + 1);
                        tlpobj.Controls.Add(lblempname, 1, i + 1);
                        tlpobj.Controls.Add(lbladdress, 2, i + 1);
                        tlpobj.Controls.Add(lblphone, 3, i + 1);
                        tlpobj.Controls.Add(lblemail, 4, i + 1);
                        tlpobj.Controls.Add(lbldesignation, 5, i + 1);
                        //tlpobj.Controls.Add(lblemail, 4, i + 1);
                        tlpobj.Controls.Add(pbemp, 6, i + 1);
                        //tlpobj.Controls.Add(lbltagid, 6, i + 1);
                        // tlpobj.Controls.Add(lblshiftid, 7, i + 1);
                        tlpobj.Controls.Add(btnedit, 7, i + 1);
                        tlpobj.Controls.Add(btndelete, 8, i + 1);
                    }

                    flowLayoutPanel1.Controls.Add(tlpobj);
                    flowLayoutPanel1.Refresh();

                }
private void BtnGo_Click(object sender, EventArgs e)
        {
            DisplayEmployee();
        }

推荐答案

1。检查变量''sql_displayemp''内容,即查询字符串更新为第二个选择的组合框控件

2.检查''dtObj.Rows''返回上述'sql_displayemp的任何值''查询,尝试复制字符串内容并在SQL /数据库中执行以确保查询正常工作。

3.在行dtObj.Clear()处设置断点;你可以自己解决!
1. Check the variable ''sql_displayemp'' content i.e query string is updated with the second selection of the combo box controls
2. Check ''dtObj.Rows'' returns any value for the above ''sql_displayemp''query, try copy the string content and execute in your SQL/database to ensure query is working correctly.
3.Put a break point at the line dtObj.Clear(); and you can able to solve yourself!


这篇关于Winforms有两个组合框点击按钮我应该显示结果的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆