具体情况如下:
另外有个ComboBox可以选择使用的数据库,
选择以后我使用SqlConnection.ChangeDatabase()来切换当前数据库。
当用户从没有权限的数据库切换到有权限的数据库时,
显示数据的ComboBox会发生标题所说情况。
断点查看错误显示的ComboBox的数据源能发现DataTable里面值是正常的。
ComboBox的Items里面行数,列数正常,
但是显示的值都变成了System.Data.DataView。
如果在有权限的几个数据库间切换的时候,一切正常。
涉及到的代码:
comboBoxArea.DisplayMember = area.AreaName;//return string
comboBoxArea.ValueMember = area.AreaValue;//return string
comboBoxArea.DataSource = area.GetArea();//return DataTable
另外有个ComboBox可以选择使用的数据库,
选择以后我使用SqlConnection.ChangeDatabase()来切换当前数据库。
当用户从没有权限的数据库切换到有权限的数据库时,
显示数据的ComboBox会发生标题所说情况。
断点查看错误显示的ComboBox的数据源能发现DataTable里面值是正常的。
ComboBox的Items里面行数,列数正常,
但是显示的值都变成了System.Data.DataView。
如果在有权限的几个数据库间切换的时候,一切正常。
涉及到的代码:
comboBoxArea.DisplayMember = area.AreaName;//return string
comboBoxArea.ValueMember = area.AreaValue;//return string
comboBoxArea.DataSource = area.GetArea();//return DataTable
(1)DisplayMember ,ValueMember 都大写如:DisplayMember="AAAA"
(2) 前面加上comboBoxArea.DataBinding.Clear();
不知道管不管事
comboBox1.ValueMember
有没设置?
行1:comboBoxArea.DisplayMember = area.AreaName;//return string
行2:comboBoxArea.ValueMember = area.AreaValue;//return string
行3:comboBoxArea.DataSource = area.GetArea();//return DataTable
行4:…… //断点位置
断点仔细看了一下,行1的DisplayMember值为空字符串"",
但是area.AreaName有值,而且不为空字符串。
这个怎么解释?area的AreaName内容很简单。
public string AreaName
{
get
{
return "AreaPartCode";
}
}
我以前用oracle的时候有过这种情况。解决方法:
(1)DisplayMember ,ValueMember 都大写如:DisplayMember="AAAA"
(2) 前面加上comboBoxArea.DataBinding.Clear();
不知道管不管事
2是不行的,帮定DataSource以后就不可以手动处理item了。