运行错误提示:无法绑定到新的显示成员。
参数名: newDisplayMember代码如下:
DataTable dt = new DataTable();
string SQLText = "Select SuitID,SuitName from dtSysUnit Order by SortNo"; dt = oData.GetDataTable(SQLText);
paComboBox.DataSource = dt;
paComboBox.ValueMember = "SuitID"; *********出错行!
paComboBox.DisplayMember = "SuitName";
参数名: newDisplayMember代码如下:
DataTable dt = new DataTable();
string SQLText = "Select SuitID,SuitName from dtSysUnit Order by SortNo"; dt = oData.GetDataTable(SQLText);
paComboBox.DataSource = dt;
paComboBox.ValueMember = "SuitID"; *********出错行!
paComboBox.DisplayMember = "SuitName";
string SQLText = "Select SuitID,SuitName from dtSysUnit Order by SortNo";
SqlDbadapter da=new sqldbadapter(sqltext,myconn);
da.fill(dt,"word");
paComboBox.DataSource = dt.Tables["word"].defaultview;
paComboBox.ValueMember = "SuitID";
paComboBox.DisplayMember = "SuitName";
这样就可以了。
SuitID要和dt中的列名一致,大小写都要一致。
ComboBox的DataSource是DataTable,不是DataSource。
SuitID要和dt中的列名一致,大小写都要一致。
=====================================================
ComboBox中的DataSource用的是DataTable,SuitID和SuitName和dt中的列名大小写一致的,可还是不行啊
DataSet dt = new DataSet();
string SQLText = "Select SuitID,SuitName from dtSysUnit Order by SortNo";
SqlDbadapter da=new sqldbadapter(sqltext,myconn);
da.fill(dt,"word");
paComboBox.DataSource = dt.Tables["word"].defaultview;
paComboBox.ValueMember = "SuitID";
paComboBox.DisplayMember = "SuitName";
这样就可以了。==============================================================================
试过了,也不行的
1。再次检查大小写的问题,因为数据库表中字段、select语句、以及paComboBox.ValueMember = "SuitID"三处有这个字段名,你关键要保证后两者之间一致。
2。dt有没有数据;另外,这本是比较简单的问题,一般出现问题,肯定是在一些细节处一不小心搞错了。
ArrayList arr = new ArrayList();
foreach(DataRow dr in dt.Tables["word"].Rows)
{
arr.Add(new myword(dr["SuitID"],dr["SuitName"]));
}
paComboBox.DataSource = arr;
paComboBox.ValueMember = "GetSuitID";
paComboBox.DisplyMember "GetSuitName";protected struct myword
{
private object suitID;
private object suitName;
public object GetSuitID
{
get { return suitID; }
}public object GetSuitName
{
get { return suitName; }
}
}
/// 初始化ComboBox列表框
/// </summary>
/// <param name="combobox">ComboBox控件名称</param>
/// <param name="sql">SQL语句</param>
/// <param name="name">要显示的名字(DisplayMember)</param>
/// <param name="dm">值(ValueMember)</param>
/// <param name="b">b为true,文本部分可编辑;b为false,文本部分不可编辑</param>
public void InitComboBox(ComboBox combobox,string sql,string name,string dm,bool b)
{
DataSet dataset;
try
{
dataset = DbHelper.Query(sql);
combobox.DataSource = dataset.Tables[0];
combobox.DisplayMember = name;
combobox.ValueMember = dm;
if(b == true)//文本部分可编辑
{
combobox.DropDownStyle = ComboBoxStyle.DropDown;
}
else//文本部分不可编辑
{
combobox.DropDownStyle = ComboBoxStyle.DropDownList;
}
dataset.Dispose();
}
catch(System.Exception er)
{
//获取数据源出错,则置文本部分可编辑
combobox.DropDownStyle = ComboBoxStyle.DropDown;
MessageBox.Show("获取代码值错误。错误信息:"+er.Message);
}
}
全该为大写看看怎么样?
>> string SQLText = "Select SuitID,SuitName from dtSysUnit Order by SortNo";
>>
>> dt = oData.GetDataTable(SQLText);dt里面有记录吗?