私はあまりwinformsの仕事をしていないので、私の無知を許してください。バインドは、ASP に由来するため、少し奇妙です。
一連のコンボ ボックスをループして、コントロール名の辞書と対応するストアド プロシージャを使用してそれらをバインドしようとしています。これは、私がやろうとしていることの簡単な例です。
public Dictionary<string, string> GetDropDownSchema()
{
return new Dictionary<string, string> { {"ddClient", "guisp_SelectClientDropDown"}, {"ddType", "guisp_SelectTypeDropDown"}, {"ddCounty", "guisp_SelectCountyDropDown"}};
}
public void BindComboBoxes()
{
var ddSchem = GetDropDownSchema();
foreach (var dd in ddSchem) {
var dt = new DataTable();
using (var con = new SqlConnection(ConStr)) {
try {
var adapter = new SqlDataAdapter(dd.Value, con);
adapter.Fill(dt);
((ComboBox)Controls.Find(dd.Key, true)[0]).DataSource = dt;
((ComboBox)Controls.Find(dd.Key, true)[0]).DisplayMember = "DisplayText";
((ComboBox)Controls.Find(dd.Key, true)[0]).ValueMember = "ID";
}
catch //(Exception ex)
{
//Code is not throwing any exception, just doesn't work
}
}
}
私はこれで単純なものが欠けていると確信しています。これを行うためのよりエレガントな方法についての助けや提案に感謝します。
ありがとう