2016-12-09 2 views
0

でドロップダウンを移入:それは私が単に変更することにより、任意のデータベースフィールドを取得することができますよう、2つのデータベースフィールドを取得組み合わせ、そして私はこの方法でドロップダウンを移入していた文字列

private DataTable PopulateDropdown(string connectionString, DataTable datatable, string query, DropDownList myDropDownList, string DataTextField, string DataValueField) 
    { 
     DataTable dt = new DataTable(); 
     using (SqlConnection con = new SqlConnection(connectionString)) 
     { 
      try 
      { 
       SqlDataAdapter adapter = new SqlDataAdapter(query, con); 
       adapter.Fill(dt); 
       myDropDownList.DataSource = dt; 
       myDropDownList.DataTextField = DataTextField; 
       myDropDownList.DataValueField = DataValueField; 
       myDropDownList.DataBind(); 
      } 
      catch (Exception ex) { } 
     } 
     return dt; 
    } 

これは素晴らしいですクエリ。例:

string query = "select firstName, id from table"; 
    PopulateDropdown(constring, dt, query, aspdropdown, "FirstName", "id"); 

私は、データベースから二つのフィールドを取得し、ドロップダウンリストを移入する前に、それらを一緒に参加できるようにする必要がありますが。私が使用してみました:

string query = "select firstName, lastName, id from table"; 
PopulateDropdown(constring, dt, query, aspdropdown, "FirstName", "id", JoinedString: "lastName"); 

string JoinedString別のパラメータとして追加され、このような方法に含まれていた:

myDropDownList.DataTextField = DataTextField + JoinedString;

残念ながら、これは私だけの空のドロップダウンリストを与えました。私は本当にこれに他にどのようにアプローチするのか分かりません。誰でも私にそれを働かせることができますか?

+0

例外処理を正しく構築する方法を調べる前に、適切に機能するようにしようとしています。新しい開発者として、ボード全体で優れたプラクティスを開発することはもちろん、小さなことを理解することは非常に難しいです。コードがあなたに怒っていた場合は謝罪してください。 –

+0

おそらく、彼は完全な例外処理を行う準備が整うまで、一時的なキャッチです。@TimSchmelter – vipersassassin

+0

http://stackoverflow.com/questions/256832/c-sharp-fill-a-combo-box-with-a-データテーブル – vipersassassin

答えて

1

SQLクエリでこれを行います

string query = "select firstName + ', ' + lastName AS FullName, id from table"; 

あなたはこのようなあなたのメソッドを呼び出します:PSあなたSqlDataAdapter

+1

完璧、ありがとう。私はちょうどSQL側でそれに近づくと思っていない –

+0

@ JayF1あなたはあなたが助けてくれた場合、正しい答えとしてマークすることができます。 – mybirthname

+1

うん、私はちょうど私がそうするためにタイマーを待っていた! –

0

を廃棄

using(SqlDataAdapter adapter = new SqlDataAdapter(query, con)) 
{ 
    adapter.Fill(dt); 
} 
myDropDownList.DataSource = dt; 
myDropDownList.DataTextField = dataTextField;//FullName 
myDropDownList.DataValueField = dataValueField;//ID 
myDropDownList.DataBind(); 

:その後

PopulateDropdown(constring, dt, query, aspdropdown, "FullName", "id"); 

Unfo 2つの値を直接バインドすることはできません。 SQLクエリーまたは後でコードビハインドのいずれかで、データテーブルに新しい列を追加する必要があります。

"select firstName, lastName, id, firstname + lastname AS JoinedString from table"; 

PopulateDropdown(constring, dt, query, aspdropdown, "FirstName", "JoinedString"); 
関連する問題