日期:2014-05-20  浏览次数:20452 次

散50分!请大家解决问题!DropDownLost绑定问题!!!
DropDownLost绑定问题!我这个练习一共有两个DropDownLost一个是选择省一个是选择市是联动的!
Page_Load中绑定的省代码如下:
if(!IsPostBack)
{
SqlConnection   con=carlhb.createConnection();
con.Open();
SqlCommand   cmd=new   SqlCommand( "select   *   from   china ",con);
SqlDataReader   sdr=cmd.ExecuteReader();
this.car_dq1.DataSource=sdr;
this.car_dq1.DataTextField= "china_name ";
this.car_dq1.DataValueField= "china_id ";
this.car_dq1.DataBind();
this.car_dq1.Items.Insert(0,new   ListItem( "——请选择省—— ", " "));
sdr.Close();
this.car_dq2.Items.Insert(0,new   ListItem( "——请选择市—— ", " "));


car_dq1_SelectedIndexChanged事件的代码如下:
string   china_id=this.car_dq1.SelectedValue;
SqlConnection   con=carlhb.createConnection();
con.Open();
SqlCommand   cmd=new   SqlCommand( "select   *   from   city   where   china_id= "+china_id,con);
SqlDataReader   sdr=cmd.ExecuteReader();
this.car_dq2.DataSource=sdr;
this.car_dq2.DataTextField= "city_name ";
this.car_dq2.DataValueField= "city_id ";
this.car_dq2.DataBind();
this.car_dq2.Items.Insert(0,new   ListItem( "——请选择市—— ", " "));
sdr.Close();
con.Close();
现在浏览的时候没问题!就是我在选择省的时候比方说我选择了辽宁省因为是联动的所以car_dq1(DropDownLost)选择的时候默认提交回服务器做选择列处像对应的市!
但是我选择了辽宁之后想要在选择回“——请选择省——”的时候出现错误!
错误报告如下:
第   1   行:   '= '   附近有语法错误。
行   150:SqlDataReader   sdr=cmd.ExecuteReader();
这是怎么回事请高手解答给分!!!!!


------解决方案--------------------
根据错误提示
貌似T-Sql语句出错
先确定你的 "china_id "这个字段是否int型
然后调式跟踪你取的 "china_id "值是否与该字段类型符合
------解决方案--------------------
帮顶
------解决方案--------------------
把SqlDataReader sdr=cmd.ExecuteReader();
以下的代码放进
if(sdr.Read())
{
放进这里
}
else
{
try
catch看看错误,调试下
}
------解决方案--------------------
出错原因是因为你下面的一条Select语句的条件china_id;
当你选择“——请选择省——”的时候china_id的值就为 '——请选择省—— ';
所以你下面的SqlDataReader读的时候就会出错了!
------解决方案--------------------
car_dq1.ddlPiCi.Items.Insert(0,new ListItem( "请选择 ", "-1 "));
car_dq2.ddlPiCi.Items.Insert(0,new ListItem( "请选择 ", "-1 "));