Concatenación y división de valores de C # winform

Para lograr el efecto que se muestra en la figura
Inserte la descripción de la imagen aquí
, seleccione el valor y la descripción al seleccionar.
Al almacenar, solo se almacena el valor
y el código se conecta en paralelo

  public void Show_Terminal()
        {
            TVTerminal.Nodes.Clear();

            exeRes = controller.GetStationInfo(combFactory.Text);
            if (!exeRes.Status)
            {
                MessageBox.Show(exeRes.Message);
                return;
            }
            dtTemp = (DataTable)exeRes.Anything;

            //string sPreLineType = "";
            string sPreLine = "";
            string sPreStage = "";
            string sPreStationType = "";


            for (int i = 0; i <= dtTemp.Rows.Count - 1; i++)
            {
                string Site = dtTemp.Rows[i]["SITE"].ToString();
                string sLine = dtTemp.Rows[i]["LINE"].ToString();
                string sStage = dtTemp.Rows[i]["STAGE"].ToString();
                string sStationType = dtTemp.Rows[i]["STATION_TYPE"].ToString() + " || " + dtTemp.Rows[i]["STATION_TYPE_DESC"].ToString();
                string sStation = dtTemp.Rows[i]["STATION_NAME"].ToString()+" || "+ dtTemp.Rows[i]["STATION_TYPE_DESC"].ToString();

                //if (sPreLineType!= sLineType)
                //{
                //    TVTerminal.Nodes.Add(sLineType);
                //    int iNodeCount = TVTerminal.Nodes.Count - 1;
                //    TVTerminal.Nodes[iNodeCount].ImageIndex = 0;

                //    TVTerminal.Nodes[iNodeCount].Nodes.Add(sLine);
                //    TVTerminal.Nodes[iNodeCount].LastNode.ImageIndex = 1;

                //    TVTerminal.Nodes[iNodeCount].LastNode.Nodes.Add(sStage);
                //    TVTerminal.Nodes[iNodeCount].LastNode.LastNode.ImageIndex = 2;

                //    TVTerminal.Nodes[iNodeCount].LastNode.LastNode.Nodes.Add(sStationType);
                //    TVTerminal.Nodes[iNodeCount].LastNode.LastNode.LastNode.ImageIndex = 3;

                //    TVTerminal.Nodes[iNodeCount].LastNode.LastNode.LastNode.Nodes.Add(sStation);
                //    TVTerminal.Nodes[iNodeCount].LastNode.LastNode.LastNode.LastNode.ImageIndex = 4;
                //}
                //else 
                if (sPreLine != sLine)
                {
                    TVTerminal.Nodes.Add(sLine);
                    int iNodeCount = TVTerminal.Nodes.Count - 1;
                    TVTerminal.Nodes[iNodeCount].ImageIndex = 0;

                    TVTerminal.Nodes[iNodeCount].Nodes.Add(sStage);
                    TVTerminal.Nodes[iNodeCount].LastNode.ImageIndex = 1;

                    TVTerminal.Nodes[iNodeCount].LastNode.Nodes.Add(sStationType);
                    TVTerminal.Nodes[iNodeCount].LastNode.LastNode.ImageIndex = 2;

                    TVTerminal.Nodes[iNodeCount].LastNode.LastNode.Nodes.Add(sStation);
                    TVTerminal.Nodes[iNodeCount].LastNode.LastNode.LastNode.ImageIndex = 3;
                }
                else if (sPreStage != sStage)
                {
                    int iNodeCount = TVTerminal.Nodes.Count - 1;
                    TVTerminal.Nodes[iNodeCount].Nodes.Add(sStage);
                    TVTerminal.Nodes[iNodeCount].ImageIndex = 2;

                    TVTerminal.Nodes[iNodeCount].LastNode.Nodes.Add(sStationType);
                    TVTerminal.Nodes[iNodeCount].LastNode.LastNode.ImageIndex = 3;

                    TVTerminal.Nodes[iNodeCount].LastNode.LastNode.Nodes.Add(sStation);
                    TVTerminal.Nodes[iNodeCount].LastNode.LastNode.LastNode.ImageIndex = 4;
                }
                else if (sPreStationType != sStationType)
                {
                    int iNodeCount = TVTerminal.Nodes.Count - 1;
                    TVTerminal.Nodes[iNodeCount].LastNode.Nodes.Add(sStationType);
                    TVTerminal.Nodes[iNodeCount].LastNode.LastNode.ImageIndex = 3;

                    TVTerminal.Nodes[iNodeCount].LastNode.LastNode.Nodes.Add(sStation);
                    TVTerminal.Nodes[iNodeCount].LastNode.LastNode.LastNode.ImageIndex = 4;
                }
                else
                {
                    int iNodeCount = TVTerminal.Nodes.Count - 1;
                    TVTerminal.Nodes[iNodeCount].LastNode.LastNode.Nodes.Add(sStation);
                    TVTerminal.Nodes[iNodeCount].LastNode.LastNode.LastNode.ImageIndex = 4;
                }
                //sPreLineType = dtTemp.Rows[i]["LINE_TYPE"].ToString();
                sPreLine = dtTemp.Rows[i]["LINE"].ToString();
                sPreStage = dtTemp.Rows[i]["STAGE"].ToString();
                sPreStationType = dtTemp.Rows[i]["STATION_TYPE"].ToString() + " || " + dtTemp.Rows[i]["STATION_TYPE_DESC"].ToString(); ;

                //if (g_sTerminalID == dtTemp.Rows[i]["TERMINAL_ID"].ToString())
                //{
                //    TVTerminal.SelectedNode = TVTerminal.Nodes[TVTerminal.Nodes.Count - 1].LastNode.LastNode.LastNode;
                //    TVTerminal.Focus();
                //}
            }
        }

Concatenar códigos importantes

 string sStationType = dtTemp.Rows[i]["STATION_TYPE"].ToString() + " || " + dtTemp.Rows[i]["STATION_TYPE_DESC"].ToString();
                string sStation = dtTemp.Rows[i]["STATION_NAME"].ToString()+" || "+ dtTemp.Rows[i]["STATION_TYPE_DESC"].ToString();

Código de valor dividido

       private void TVTerminal_AfterSelect(object sender, TreeViewEventArgs e)
        {
            TVTerminal.SelectedNode.SelectedImageIndex = TVTerminal.SelectedNode.ImageIndex;

            //lblLineTypeName.Text = "";
            lblLineName.Text = "";
            lblStageName.Text = "";
            lblStationTypeName.Text = "";
            lblStationName.Text = "";


            if (TVTerminal.SelectedNode.Level != 3)
                return;
            //lblLineTypeName.Text = TVTerminal.SelectedNode.Parent.Parent.Parent.Parent.Text;
            //baseInfo.LineType = lblLineTypeName.Text;
            lblLineName.Text = TVTerminal.SelectedNode.Parent.Parent.Parent.Text;
            baseInfo.LineName = lblLineName.Text;
            lblStageName.Text = TVTerminal.SelectedNode.Parent.Parent.Text;
            baseInfo.StageName = lblStageName.Text;
            lblStationTypeName.Text = TVTerminal.SelectedNode.Parent.Text;
            // Add by shinecao on 2021/3/19
            lblStationTypeName.Text = lblStationTypeName.Text.Substring(0, lblStationTypeName.Text.IndexOf(" ||"));
            baseInfo.StationType = lblStationTypeName.Text;

            lblStationName.Text = TVTerminal.SelectedNode.Text;
            // Add by kero hu on 2021/3/16
            lblStationName.Text = lblStationName.Text.Substring(0, lblStationName.Text.IndexOf(" ||"));

            baseInfo.StationName = lblStationName.Text;
            //exeRes = controller.GetStationControl(baseInfo.StationName);
            //if (!exeRes.Status)
            //{
            //    MessageBox.Show(exeRes.Message);
            //}
        }

Dividir código importante

  lblStationTypeName.Text = TVTerminal.SelectedNode.Parent.Text;
            // Add by shinecao on 2021/3/19
            lblStationTypeName.Text = lblStationTypeName.Text.Substring(0, lblStationTypeName.Text.IndexOf(" ||"));
            baseInfo.StationType = lblStationTypeName.Text;

Valor de realización más visualización de descripción

Inserte la descripción de la imagen aquí

       private void cobLine_SelectedIndexChanged(object sender, EventArgs e)
        {
            cobStation.Items.Clear();
            if (cobLine.SelectedIndex > -1 && !string.IsNullOrWhiteSpace(cobLine.Text))
            {
                string line = cobLine.Text.Trim();
                DataTable stationDT = conn.GetPostStationByLine(line);
                if (stationDT.Rows.Count > 0)
                {
                    //foreach (DataRow item in stationDT.Rows)
                    //{
                    //    cobStation.Items.Add(item[0]);
                    //}
                    for (int i = 0; i < stationDT.Rows.Count; i++)
                    {
                        //cbxShop.Items.Add(dtTemp.Rows[i][0].ToString());
                        cobStation.Items.Add(new Metadata(stationDT.Rows[i][1].ToString(), stationDT.Rows[i][0].ToString()));
                    }
                }
            }
        }
   public DataTable GetPostStationByLine(string line)
        {
            return dal.GetPostStationByLine(line);
        }
DAL
   public DataTable GetPostStationByLine(string line)
        {  
            string sql = string.Format("SELECT A.STATION_TYPE,B.STATION_TYPE|| ' '||B.STATION_TYPE_DESC  AS STATION_TYPE_DESC FROM IMES.M_POST_LINE_STATION A left join IMES.M_STATION_TYPE B " +
                "ON B.STATION_TYPE = A.STATION_TYPE  WHERE A.ENABLED = 'Y' AND A.LINE ='{0}'", line);
            return utility.Query(sql);
        }

SQL

SELECT A.STATION_TYPE,B.STATION_TYPE|| ' '||B.STATION_TYPE_DESC  AS STATION_TYPE_DESC FROM IMES.M_POST_LINE_STATION A left join IMES.M_STATION_TYPE B 
ON B.STATION_TYPE = A.STATION_TYPE  WHERE A.ENABLED = 'Y' AND A.LINE ='Miniled-Line01'

Supongo que te gusta

Origin blog.csdn.net/caoguanghui0804/article/details/114997559
Recomendado
Clasificación