DataTable Werte (strings) einer Spalte trimmen



  • Hi,

    ich habe mir eine Methode geschrieben, die Werte aus einer SQL-Datenbank holt und diese in eine ComboBox meines Programms schreibt.

    Funktioniert soweit auch einwandfrei, jedoch ist der Wert "CompanyName" in der Datenbank als nchar(150) gespeichert und kommt auch mit 150 Zeichen aus der Datenbank zurück in die ComboBox.

    Folgend der Code meiner Funktion:

    void FillLogFileCustomerComboBox()
            {
    
                SqlConnection SQLconn = new SqlConnection("Data Source=MDEBACKUP2;Initial Catalog=PSP;Integrated Security=True");
                SqlDataAdapter da = new SqlDataAdapter();
                SqlCommand cmd = new SqlCommand("SELECT CompanyName, CustID FROM Customers ORDER BY CompanyName",SQLconn);
                da.SelectCommand = cmd;
    
                DataSet ds = new DataSet();
                DataTable customersTable = new DataTable();
                da.Fill(ds, "Customers");
    
                foreach(DataTable table in ds.Tables)
                {
                    if(table.TableName == "Customers")
                        customersTable = table;
                        //Hier vielleicht schon trimmen?
                }
                 //Oder hier trimmen?
                this.cbxCustomers.DataSource = customersTable;
                this.cbxCustomers.DisplayMember = "CompanyName";
                this.cbxCustomers.ValueMember = "CustID";
    
             }
    

    Gibt es eine Möglichkeit, wie ich die Werte der entsprechenden Spalte in meinem DataTable trimmen kann z.B. mit string.Trim()?

    Vielen Dank schon mal für Eure Hilfe 🙂
    Gruß
    Markus



  • Jo string.Trim() gibt es.Wilslt du jetzt wie du das am besten machst oder wusstest du nur nicht ob es Trim gibt?



  • Ich würde gerne wissen wie ich das am besten mache. Das es String.Trim() gibt wusste ich schon 😃



  • Naja wenn jeder CompanyName mit 150 Zeichen rauskommt, auch wenn er nicht immer 150 Zeichen hat, dann würde ich das schon in der foreach machen.



  • SqlCommand cmd = new SqlCommand("SELECT RTRIM(CompanyName), CustID FROM Customers ORDER BY CompanyName",SQLconn);
    


  • Joa genau das würde ich auch gerne, aber ich habe leider keine Ahnung wie ich and die Werte/strings der Spalte "CompanyName" im entsprechende DataTable ran komme >_<



  • http://dotnetperls.com/datatable-use
    Schaust du, da ist DataTable etwas mehr erklärt, da sollteste das gesucht finden.

    EDIT: :p plong, danke witte,wusste net das sql sowat kann 😃



  • Danke beiden!

    @witte

    Wenn ich diese SQL-Abfrage einsetze dann steht in der Combobox statt dem CompanyName die CustID drin o.O

    Aber der Ansatz das gleich in der SQL-Abfrage zu erledigen finde ich super! Werde da mal weiter recherchieren, falls nicht jemand was parat hat 😃



  • Sorry, Du mußt noch die Spalte umbenennen:

    SELECT RTRIM(CompanyName) AS CompanyName, CustID FROM Customers ORDER BY CompanyName
    


  • Yeah! Funktioniert \(-)/

    Vielen Dank!


Anmelden zum Antworten