4

.net 3.5 で ['-' または '/' のような] 区切り記号を使用してドロップダウン リストを 2 つの値にバインドしたい。

 qry = "SELECT CityName, MasterState.StateName FROM MasterCity INNER JOIN "+
              "MasterState ON MasterCity.StateID = MasterState.StateID order by CityName";

DropCity.DataMember = "DeafultView";
//DropCity.DataTextField = "CityName";
//DropCity.DataValueField = "CityName";
DropCity.DataTextFormatString = "{0} - {1}";
DropCity.DataTextField = "CityName,StateName";
DropCity.DataSource = dt;
DropCity.DataBind();
DropCity.Items.Insert(0, "-Select-");**

やったけどエラーになる

DataBinding: 'System.Data.DataRowView' には 'CityName,StateName' という名前のプロパティが含まれていません。"}

これどうやってするの?

4

3 に答える 3

3
DropCity.DataTextField = "CityName,StateName";

DataTextField列を検索しますCityName,StateNameが、存在しません。

このようにクエリを変更できるかもしれません

qry = "SELECT CityName, CityName + '-' + MasterState.StateName as CityState
    FROM MasterCity INNER JOIN "+
          "MasterState ON MasterCity.StateID = MasterState.StateID order by CityName";

    DropCity.DataTextField = "CityState"; 
于 2013-02-13T08:44:20.977 に答える
0

SQLクエリを変更して必要なものを返すことはできますが、一度に2つのものをバインドすることは不可能だと思います。

変化する:-

qry = "SELECT CityName, MasterState.StateName FROM MasterCity INNER JOIN "+
  "MasterState ON MasterCity.StateID = MasterState.StateID order by CityName";

qry = "SELECT CityName, MasterState.StateName, " + 
     "CityName + ' - ' + MasterState.StateName AS DDName " +
      " FROM MasterCity INNER JOIN "+
      "MasterState ON MasterCity.StateID = MasterState.StateID order by CityName";

次に変更します:-

DropCity.DataTextField = "CityName,StateName";

に :-

DropCity.DataTextField = "DDName";
于 2013-02-13T08:44:48.033 に答える