日期:2014-05-19  浏览次数:21030 次

【【amandag(高歌)】】请进来一下 有问题请教 就刚才那个ComboBox的问题
由于我用的是ACCESS数据库     所以对你刚才的程序改了一点

(http://community.csdn.net/Expert/topic/5658/5658408.xml?temp=4.258364E-02)
......

private   void   comboBox1_SelectedIndexChanged(object   sender,   EventArgs   e)
{
        if   (comboBox1.Text.Trim().Length   ==   0)
                return;

        OleDbConnection   cn   =   new   OleDbConnection( "server=.;Integrated   security=yes;database=pubs ");
        string   strSQL   =   "select   ProvinceID,   ProvinceName   from   Province   where   CountryID   =   @CountryID ";
        OleDbDataAdapter   da   =   new   OleDbDataAdapter(strSQL,   cn);
        da.SelectCommand.Parameters.Add( "@CountryID ",   OleDbDbType.Integer).Value   =   Convert.ToInt32(comboBox1.Text);
        DataSet   ds   =   new   DataSet();
        cn.Open();
        da.Fill(ds);
        cn.Close();
        comboBox2.DataSource   =   ds.Tables[0];
        comboBox2.ValueMember   =   "ProvinceID ";
        comboBox2.DisplayMember   =   "ProvinceName ";
}

------------------------------

程序成功生成
执行这一行报错:

  da.SelectCommand.Parameters.Add( "@CountryID ",   OleDbDbType.Integer).Value   =   Convert.ToInt32(comboBox1.Text);


输入字符串的格式不正确。
确保方法参数的格式正确。
将一个字符串转换为DateTime时,先分析该字符串以获取日期,然后再将每个变量放置倒DateTime对象中。


不知道上诉报错是什么意思,我们哪里用倒DateTime啊?

------解决方案--------------------
我也没用到DataTime.. 莫名中,我用Access数据库试一下吧
------解决方案--------------------
最后还有个小问题看方不方便解决,都正常了,就是如果第一级(Country)选中了美国,但如果美国下面的第二级目录没有任何数据,本来应该什么都不显示,但现在还显示的中国对应的省(或其他不匹配的数据)
-----------------------
重新绑定下
comboBox2.DataSource = null;
comboBox2.DataBind();