DropDownList绑定数据库显示问题!请高手帮忙看一下小弟给分的!!
DropDownList绑定显示问题!这是一个DropDownList网上注册选择所在地的DropDownList一共有两个DropDownList一个是省一个是市连动反映选择省自己列出市但是我想让它在浏览的时候美观一些在DropDownList加上“请选择省”和“请选择市”
我是这样加的但是出错
this.car_dq1.Items.Insert(0,new ListItem("——请选择省——",""));
出错内容是:sdr=cmdCity.ExecuteReader();着句话出错!
说“=”号附近有语法错误!请高手看看!
china是省表名
china_id是省编号
china_name是省名称字段
city是市表名
city_id市编号
china_id是外键
city_name市名称
car_dq1是省的DropDownList
car_dq2是市的DropDownList
private void Page_Load(object sender, System.EventArgs e)
{
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();
SqlCommand cmdCity=new SqlCommand("select * from city where china_id="+this.car_dq1.SelectedValue,con);
sdr=cmdCity.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();
}
private void car_dq1_SelectedIndexChanged(object sender, System.EventArgs e)
{
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();
} --------------------编程问答-------------------- 顶! --------------------编程问答-------------------- 自己UP --------------------编程问答-------------------- 在顶! --------------------编程问答-------------------- UP --------------------编程问答-------------------- UP --------------------编程问答-------------------- UP --------------------编程问答-------------------- 在顶~ --------------------编程问答-------------------- 帮新人顶!1! --------------------编程问答-------------------- 靠没人能帮帮新手呀!自己在定!!!! --------------------编程问答-------------------- 顶顶哈! --------------------编程问答-------------------- 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();
con.Close();
this.car_dq2.Items.Insert(0,new ListItem("---请选择市---",""));// Postback后再调用那段代码
}
// 在postBack之前不要绑定car_dq2 --------------------编程问答-------------------- this.car_dq2.Items.Insert(0,new ListItem("","——请选择市——"));
这样,楼主把前面的这种都改改
--------------------编程问答-------------------- 如果我没搞错;楼主可以跟踪下 car_dq2.SelectValue 应该是 --请选择市-- --------------------编程问答-------------------- 不行呀~!
if(!IsPostBack)
{
}
在着个之后填写
this.car_dq2.Items.Insert(0,new ListItem("---请选择市---",""));
还是
行 81: sdr=cmdCity.ExecuteReader();
语法错误呀! --------------------编程问答-------------------- 改成这样也是出错
this.car_dq2.Items.Insert(0,new ListItem("","——请选择市——")); --------------------编程问答-------------------- 在顶! --------------------编程问答-------------------- SqlDataReader 可以吗?你改成datatable看看。 --------------------编程问答-------------------- SqlCommand cmd=new SqlCommand("select * from city where china_id='"+china_id+"'",con);
你跟踪看下 --------------------编程问答-------------------- 用datatable怎么用呀!我是新手不太会用datatable
SqlDataReader sdr=cmd.ExecuteReader();
不是这样写吧? --------------------编程问答-------------------- 用 DataAdapter Fill DataSet
楼主查下msdn去
不要总说自己是新手,学才是最重要的 --------------------编程问答-------------------- SqlCommand 错误: 标识符“SqlCommand”超出范围
超出范围!SQLCOMMAND
SqlCommand cmdCity=new SqlCommand("select * from city where china_id="+this.car_dq1.SelectedValue,con);
SQL语句问题?? --------------------编程问答-------------------- 恩好的!用着个方法吗??DataAdapter Fill DataSet --------------------编程问答-------------------- 搂主把 this.car_dq1.SelectedValue 输出来看看是什么?
SqlCommand cmdCity=new SqlCommand("select * from city where china_id='"+this.car_dq1.SelectedValue+"'",con); --------------------编程问答-------------------- SqlConnection con=carlhb.createConnection();
SqlDataAdapter dap=new SqlDataAdapter (select * from china",con);
DataTable table =new DataTable();
dap.Fill(table);
this.car_dq1.DataSource=table; --------------------编程问答-------------------- 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();
SqlCommand cmdCity=new SqlCommand("select * from city where china_id="+this.car_dq1.SelectedValue,con);
sdr=cmdCity.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();
}
/////////////
此时你的 this.car_dq1.SelectedValue 为空
知道原因了吧。 --------------------编程问答-------------------- 我修改出来了!但是不知道可用不可用!请大家帮看看! --------------------编程问答-------------------- 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("——请选择省——",""));//此时你给("——请选择省——"这个item赋的value=""
sdr.Close();
SqlCommand cmdCity=new SqlCommand("select * from city where china_id="+this.car_dq1.SelectedValue,con);
sdr=cmdCity.ExecuteReader();//因为原来你的代码中,这时this.car_dq1.SelectedValue="",所以sql语句出错
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();
}
--------------------编程问答-------------------- private void Page_Load(object sender, System.EventArgs e)
{
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("——请选择市——",""));
con.Close();
}
private void car_dq1_SelectedIndexChanged(object sender, System.EventArgs e)
{
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();
} --------------------编程问答-------------------- 应该先把省、市的数据都绑定完,最后再写
this.car_dq1.Items.Insert(0,new ListItem("——请选择省——",""));
this.car_dq1.Items.SelectIndex=0; //下拉表显示 "——请选择省——"
this.car_dq2.Items.Insert(0,new ListItem("——请选择市——",""));
this.car_dq2.Items.SelectIndex=0; //下拉表显示"——请选择市——"
--------------------编程问答-------------------- 我是这样弄的不知道可行不可行!!请你们帮着看!在Page_Load中是这样弄的然后在激发事件后!在绑定!
private void car_dq1_SelectedIndexChanged(object sender, System.EventArgs e)
{
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();
}
--------------------编程问答-------------------- this.car_dq1.Items.Insert(0,new ListItem("——请选择省——",""));
this.car_dq2.Items.Insert(0,new ListItem("——请选择市——",""));
this.car_dq2.Items.Insert(0,new ListItem("——请选择市——",""));
改成以下我想就不回错了吧:
this.car_dq1.Items.Insert(0,new ListItem("——请选择省——","-1"));
this.car_dq2.Items.Insert(0,new ListItem("——请选择市——","-1"));
this.car_dq2.Items.Insert(0,new ListItem("——请选择市——","-1"));
--------------------编程问答-------------------- 你这么做就是实现了也是是不行的,我这有一个无刷新的易做图联动控件(有源码,我老大搞的),看一下吧
http://blog.csdn.net/tianzhenjing/archive/2007/01/13/1481790.aspx --------------------编程问答-------------------- this.car_dq1.Items.Insert(0,new ListItem("——请选择省——",""));
出错内容是:sdr=cmdCity.ExecuteReader();着句话出错!
说“=”号附近有语法错误!请高手看看!
////////////////////////////////////////////
因为加载时
this.car_dq1.SelectedValue = "";
故执行sql为:select * from city where china_id=
所以在cmdCity.ExecuteReader();时报“=”号附近有语法错误
将其给一个默认值(-1)就不会了
加载时:this.car_dq1.SelectedValue = -1;
执行sql为:select * from city where china_id=-1
--------------------编程问答-------------------- SQL语句有问题 --------------------编程问答-------------------- --------------------编程问答-------------------- Click the link to solve your problem.Good luck! --------------------编程问答-------------------- 50分到哪里去了?
补充:.NET技术 , ASP.NET