2017-01-30 3 views
1

私のcomboBoxのトリミングは、SQL Serverからデータを取得しようとしていますか?トリム機能を使用する必要があることに注意してください。私はさまざまな方法でそれを適用しましたが、まだ私のデータベースから空白に直面しているようです。 Trim機能を効果的に組み込むにはどうすればいいですか?私のC#アプリケーションからのSQLデータベース値の切り取り

void fill()//fill combobox with values 
{ 
    try 
    { 
     string connectionString = "Data Source=cmcentraldb;Initial Catalog=CMLTD;Integrated Security=True"; 
     SqlConnection con2 = new SqlConnection(connectionString); 
     con2.Open(); 
     string query = "SELECT DISTINCT ITEMDESC FROM dbo.IV00101"; 
     //select Convert(nvarchar(50),Item_Description)+ ':' +Convert(nvarchar(50),Item#) as Combined from Carimed 
     SqlCommand cmd2 = new SqlCommand(query, con2); 

     SqlDataReader dr2 = cmd2.ExecuteReader(); 
     while (dr2.Read()) 
     { 
      string cari_des = dr2.GetString(dr2.GetOrdinal("ITEMDESC")); 
      suggestComboBox1.Items.Add(cari_des); 
      suggestComboBox1.Text.Trim(); 
     } 
     //con2.Close(); 
    } 
    catch (Exception ex) 
    { 
     MessageBox.Show(ex.ToString()); 
    } 
} 
+0

データベーステーブルのデータ型とは何ですか。その固定されたcharの場合、サイズに関係なく常に同じ量の領域が割り当てられます。 – Wheels73

+1

'suggestComboBox1.Items.Add(cari_des.Trim()); ' – MotKohn

+0

私はそれがcharだと知っていますが、私はデータベースに対する管理権限がないということです。特定の列から引っ張って、アプリケーション内でトリムしようとしています@ Wheels73 –

答えて

1

コンボボックスにバインドする前に値をトリムする必要があります。以下のようにそれを実行します。

void fill()//fill combobox with values 
{ 
    try 
    { 
     string connectionString = "Data Source=cmcentraldb;Initial Catalog=CMLTD;Integrated Security=True"; 
     SqlConnection con2 = new SqlConnection(connectionString); 
     con2.Open(); 
     string query = "SELECT DISTINCT ITEMDESC FROM dbo.IV00101"; 
     //select Convert(nvarchar(50),Item_Description)+ ':' +Convert(nvarchar(50),Item#) as Combined from Carimed 
     SqlCommand cmd2 = new SqlCommand(query, con2); 

     SqlDataReader dr2 = cmd2.ExecuteReader(); 
     while (dr2.Read()) 
     { 
      string cari_des = dr2.GetString(dr2.GetOrdinal("ITEMDESC")); 
      suggestComboBox1.Items.Add(cari_des.Trim()); 
     } 
     //con2.Close(); 
    } 
    catch (Exception ex) 
    { 
     MessageBox.Show(ex.ToString()); 
    } 
} 
+0

ありがとうございます。あなたは素晴らしいです –

1

は、あなたはそれが何もありません、あなたが行を削除することができ

suggestComboBox.Items.Add(cari_des.Trim()); 

コンボボックスに追加するアイテムをトリミングする必要があります。

suggestComboBox1.Text.Trim();  // delete this 
+0

ありがとうございますが、誰かが既に同じ答えを提案しています。私はupvoteことができますが、私の担当者が低すぎることを願っています。ありがとうございました –

0

ます。また、使用することはできませんReplace

suggestComboBox1.Items.Add(cari_des.Replace(" ", "")); 

注:これは、開始時および終了時のすべての空白を削除します。

1

私はトリム機能を含む行くのです効果的

私は気づくことの一つは、あなたがアプリケーション側で用意したSQLクエリを持っている方法。 これは多くの理由から、これは良い習慣でも推奨できません。

必要なデータを返すストアドプロシージャを作成しておく必要があります。 "トリム"機能を実装するのは、データベースから返されたデータが決して大量になることがない限り、アプリケーション側ではなくデータベース側(dbプロシージャ内)にする必要があります。

declare @name varchar(5)='a ' 
select @name,RTRIM(LTRIM(@name)) 
+0

ありがとう、私は次回に考慮に入れます。とても有難い。私はupvoteしたが、私の担当者はまだ必要なレベルに達していない –

関連する問題