Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.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# ASPX dropdownlist所选项目_C#_Asp.net - Fatal编程技术网

C# ASPX dropdownlist所选项目

C# ASPX dropdownlist所选项目,c#,asp.net,C#,Asp.net,我有这个代码来显示DB下拉列表中的项目 string query = "SELECT ID, Firstname, Lastname FROM Crew"; string constr = ConfigurationManager.ConnectionStrings["constr1"].ConnectionString; using (SqlConnection con = new SqlConnection(constr))

我有这个代码来显示DB下拉列表中的项目

 string query = "SELECT ID, Firstname, Lastname FROM Crew";
            string constr = ConfigurationManager.ConnectionStrings["constr1"].ConnectionString;
            using (SqlConnection con = new SqlConnection(constr))
            {
                using (SqlCommand cmd = new SqlCommand(query))
                {
                    cmd.CommandType = CommandType.Text;
                    cmd.Connection = con;
                    con.Open();
                    using (SqlDataReader sdr = cmd.ExecuteReader())
                    {
                        while (sdr.Read())
                        {
                            ListItem item = new ListItem();
                            item.Text = sdr["Lastname"].ToString() + ' ' + sdr["Firstname"].ToString();
                            item.Value = sdr["ID"].ToString();
                            item.Selected = ""
                            ddlCrew.Items.Add(item);
                        }
                    }
                    con.Close();
                }
            }
            ddlCrew.Items.Insert(0, new ListItem("--Select Crew--", "0"));
如何根据值选择项目

工作人员: CrewID,Firstname,Lastname,IsActive

表报告: 船员报告ID

因此,我需要根据在表格报告的Crew列中输入的ID,从表格Crew中选择Firstname+Lastname

编辑:

正如Tony所建议的,我现在有以下代码:

            string query = "SELECT RepCrewID, Firstname, Lastname FROM tblRepCrew; SELECT ServiceTicketReportID, InspectedBy FROM tblServiceTicketReport WHERE ServiceTicketID = 123";
            string constr = ConfigurationManager.ConnectionStrings["constr1"].ConnectionString;
            using (SqlConnection con = new SqlConnection(constr))
            {
                using (SqlCommand cmd = new SqlCommand(query))
                {
                    cmd.CommandType = CommandType.Text;
                    cmd.Connection = con;
                    con.Open();
                    using (SqlDataReader sdr = cmd.ExecuteReader())
                    {
                        while (sdr.Read())
                        {

                            ListItem item = new ListItem();
                            item.Text = sdr["Lastname"].ToString() + ' ' + sdr["Firstname"].ToString();
                            item.Value = sdr["RepCrewID"].ToString();   

                      if ( sdr["InspectedBy"].ToString() == sdr["RepCrewID"].ToString() )
                            {                        
                                item.Selected = true;
                            }

                            ddlCrew.Items.Add(item);
                        }
                    }
                    con.Close();
                }
            }
            ddlCrew.Items.Insert(0, new ListItem("-- Select Crew --", "0"));
我唯一需要做的就是IF语句。据我所知,我必须检查列InspectedBy(表tblServiceTicketReport)中的ID是否与RepCrewID相同。如果相同,则选择它,如果不相同,则选择它或它的黑色,以便能够选择新的机组成员。大概是这样的:

             if ( sdr["InspectedBy"].ToString() == sdr["RepCrewID"].ToString() )
                            {                        
                                item.Selected = true;
                            }
编辑2

到目前为止,我已经:

string query = "SELECT ServiceTicketReportID, InspectedBy FROM tblServiceTicketReport WHERE ServiceTicketID = 21336; SELECT RepCrewID, Firstname, Lastname FROM tblRepCrew";
            string constr = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
            using (SqlConnection con = new SqlConnection(constr))
            {
                using (SqlCommand cmd = new SqlCommand(query))
                {
                    cmd.CommandType = CommandType.Text;
                    cmd.Connection = con;
                    con.Open();
                    using (SqlDataReader sdr = cmd.ExecuteReader())
                    {
                      while (sdr.Read())
                        {
                           something = sdr["InspectedBy"].ToString(); 
                        }
                            if (sdr.NextResult())
                                {
                                    while (sdr.Read())
                                    {
                                        ListItem item = new ListItem();
                                        item.Text = sdr["Lastname"].ToString() + ' ' + sdr["Firstname"].ToString();
                                        item.Value = sdr["RepCrewID"].ToString();   

                  if ( something == sdr["RepCrewID"].ToString())
                        {                        
                            item.Selected = true;
                        }

                        ddlCrew.Items.Add(item);

                            }
                        }
                    }
                    con.Close();
                }
            }
            ddlCrew.Items.Insert(0, new ListItem("-- Select Crew --", "0"));
但我发现了这个错误:

>>> Error executing child request for ServiceTicketReportEdit.aspx.
>>> ServiceTicketReportEdit.aspx.cs(58): error CS0103: The name 'something' does not exist in the current context
表:

tblServiceTicketReport:ServiceTicketReportID、ServiceTicketID、InspectedBy


tblRepCrew:RepCrewID、Firstname、Lastname

您可以检查while循环内的条件,并选择默认值

dropdownlist.ClearSelection(); //for clearing previous selection
dropdownlist.Items.FindByValue(value).Selected = true; //select item by value
        string query = "SELECT ServiceTicketReportID, InspectedBy FROM tblServiceTicketReport WHERE ServiceTicketID = 123; SELECT RepCrewID, Firstname, Lastname FROM tblRepCrew";
        string constr = ConfigurationManager.ConnectionStrings["constr1"].ConnectionString;
        string something = null; 
        using (SqlConnection con = new SqlConnection(constr))
        {
            using (SqlCommand cmd = new SqlCommand(query))
            {
                cmd.CommandType = CommandType.Text;
                cmd.Connection = con;
                con.Open();
                using (SqlDataReader sdr = cmd.ExecuteReader())
                {
                    while (sdr.Read())
                    {
                       something = sdr["InspectedBy"].ToString(); 
                    }
                    if (sdr.NextResult())
                    {
                    while (sdr.Read())
                    {

                        ListItem item = new ListItem();
                        item.Text = sdr["Lastname"].ToString() + ' ' + sdr["Firstname"].ToString();
                        item.Value = sdr["RepCrewID"].ToString();   

                  if ( something == sdr["RepCrewID"].ToString())
                        {                        
                            item.Selected = true;
                        }

                        ddlCrew.Items.Add(item);
                    }
                  }
                }
                //using auto close the connection
                //con.Close();

            }
        }
        ddlCrew.Items

您可以检查while循环内的条件,并选择默认值

        string query = "SELECT ServiceTicketReportID, InspectedBy FROM tblServiceTicketReport WHERE ServiceTicketID = 123; SELECT RepCrewID, Firstname, Lastname FROM tblRepCrew";
        string constr = ConfigurationManager.ConnectionStrings["constr1"].ConnectionString;
        string something = null; 
        using (SqlConnection con = new SqlConnection(constr))
        {
            using (SqlCommand cmd = new SqlCommand(query))
            {
                cmd.CommandType = CommandType.Text;
                cmd.Connection = con;
                con.Open();
                using (SqlDataReader sdr = cmd.ExecuteReader())
                {
                    while (sdr.Read())
                    {
                       something = sdr["InspectedBy"].ToString(); 
                    }
                    if (sdr.NextResult())
                    {
                    while (sdr.Read())
                    {

                        ListItem item = new ListItem();
                        item.Text = sdr["Lastname"].ToString() + ' ' + sdr["Firstname"].ToString();
                        item.Value = sdr["RepCrewID"].ToString();   

                  if ( something == sdr["RepCrewID"].ToString())
                        {                        
                            item.Selected = true;
                        }

                        ddlCrew.Items.Add(item);
                    }
                  }
                }
                //using auto close the connection
                //con.Close();

            }
        }
        ddlCrew.Items


看来这正是我需要的。但是如何检查(比较)表之间的值呢?if语句。我的意思是,如何检查Crew列下的table Report中有哪个值?ID是您在列中输入的值,如果(ID==sdr[“ID”]。ToString())是,但该ID位于不同的table,table Report中。我如何“到达”它?您需要连接两个表还是需要进行另一次选择以从表报告中获取ID?选择将更容易,对吗?我在同一个查询中选择了ReportID,Crew FROM Report。但我如何在If语句中使用它呢?有些人喜欢>如果(Crew.ToString()==sdr[“ID”].ToString())看起来就是我需要的。但是如何检查(比较)表之间的值呢?if语句。我的意思是,如何检查Crew列下的table Report中有哪个值?ID是您在列中输入的值,如果(ID==sdr[“ID”]。ToString())是,但该ID位于不同的table,table Report中。我如何“到达”它?您需要连接两个表还是需要进行另一次选择以从表报告中获取ID?选择将更容易,对吗?我在同一个查询中选择了ReportID,Crew FROM Report。但我如何在If语句中使用它呢?有些类似于>如果(Crew.ToString()==sdr[“ID”].ToString())听起来您的查询需要加入Crew和Report表?@sh1rts>基本上只需选择station即可。参见Tony Dong的答案。我只是不能用if语句从另一个表中得到正确的行。我们可以在您需要的时候讨论更多online@TonyDong嘿我已经更新了我的主题,请就IF声明向我提供建议。谢谢。假设您想使用用户名作为IF语句,请参阅新的代码更新。听起来您的查询需要加入Crew和Report表?@sh1rts>基本上只需选择station即可。参见Tony Dong的答案。我只是不能用if语句从另一个表中得到正确的行。我们可以在您需要的时候讨论更多online@TonyDong嘿我已经更新了我的主题,请就IF声明向我提供建议。谢谢。假设您想使用用户名作为IF语句,请参阅新的代码更新。