标题:为什么初始化页面的时候dropdownlist控件读取数据库错误
只看楼主
iamliubo
Rank: 1
等 级:新手上路
帖 子:357
专家分:0
注 册:2005-11-7
 问题点数:0 回复次数:12 
为什么初始化页面的时候dropdownlist控件读取数据库错误

为什么
if(!this.IsPostBack)
{
string strCmd="select * from Area where Level=1";
string DB="Area";
string strColumn="Province";
ddl_Province.Items.Clear();
ddl_City.Items.Clear();
ddl_Region.Items.Clear();
LoadData_ddl(strCmd,DB);
ddl_Province.DataSource=LoadArray(DB,strColumn);
ddl_Province.DataBind();
ddl_Province.Items.Add(Convert.ToString(Session["myProvince"]));
ddl_Province.SelectedIndex=ds.Tables[DB].Rows.Count;

strCmd="select * from Area where Province='"+Convert.ToString(Session["myProvince"])+"' and Level=2";
strColumn="City";
LoadData_ddl(strCmd,DB);
ddl_City.DataSource=LoadArray(DB,strColumn);
ddl_City.DataBind();
ddl_City.Items.Add(Convert.ToString(Session["myCity"]));
ddl_City.SelectedIndex=ds.Tables[DB].Rows.Count;

strCmd="select * from Area where Province='"+Convert.ToString(Session["myProvince"])+"' and City='"+Convert.ToString(Session["myCity"])+"' and Level=3";
strColumn="Region";
LoadData_ddl(strCmd,DB);
ddl_Region.DataSource=LoadArray(DB,strColumn);
ddl_Region.DataBind();
ddl_Region.Items.Add("不限");
ddl_Region.SelectedIndex=ds.Tables[DB].Rows.Count;
}
private void LoadData_ddl(string strcmd,string DataBase)
{
string strCmd=strcmd;
string DB=DataBase;
SqlConnection conn=new SqlConnection();
SqlCommand cmd=new SqlCommand();
conn.ConnectionString="server=(local);database=searchhouse;user id=lb;password=lb";
cmd.Connection=conn;
cmd.CommandText=strCmd;
da.SelectCommand=cmd;
da.Fill(ds,DB);
conn.Close();
conn.Dispose();
}
private string[] LoadArray(string DB,string strColumn)
{
int num=ds.Tables[DB].Rows.Count;
string[] strDDL=new string[num];
for(int i=0;i<num;i++)
{
strDDL[i]=ds.Tables[DB].Rows[i][strColumn].ToString();
}
return strDDL;
}
数据库格式
id province city region level
1 辽宁 NULL NULL 1
2 辽宁 大连 NULL 2
3 辽宁 大连 中山区 3
4 辽宁 大连 甘井子区 3
5 辽宁 沈阳 NULL 2

显示在DDL控件里的数据总是读取正确的数据加上他上一及的数据
比如:select * from area where province='session["***"]' and city='session["***"]' and level=3
在DDL里应该显示ID是4 , 5
但是读出来的数据是ID 3 ,4 ,5的数据
本来我以为只是首页的是这样,但后来我在别的页上也出现这个问题,是不是代码有问题???

搜索更多相关主题的帖子: ddl 数据库 dropdownlist Province 控件 
2006-09-21 13:47
iamliubo
Rank: 1
等 级:新手上路
帖 子:357
专家分:0
注 册:2005-11-7
得分:0 
错了,
但是读出来的数据是ID 3 ,4 ,5的数据
应该是:但是读出来的数据是ID 2 ,3 ,4 的数据


2006-09-21 15:23
chenjin145
Rank: 1
等 级:禁止访问
帖 子:3922
专家分:0
注 册:2006-7-12
得分:0 
查詢分析器裡面執行下就知道了

[url=javascript:alert(1);] [div]fdgfdgfdg\" on\"[/div] [/url]
2006-09-21 15:25
iamliubo
Rank: 1
等 级:新手上路
帖 子:357
专家分:0
注 册:2005-11-7
得分:0 
以下是引用chenjin145在2006-9-21 15:25:14的发言:
查詢分析器裡面執行下就知道了

再那里面没错误


2006-09-21 15:30
iamliubo
Rank: 1
等 级:新手上路
帖 子:357
专家分:0
注 册:2005-11-7
得分:0 

这两段代码就能正常执行
private void ddl_Province_SelectedIndexChanged(object sender, System.EventArgs e)
{
string strCmd="select * from Area where province='"+ddl_Province.SelectedItem.ToString()+"' and Level=2";
string DB="Area";
string strColumn="City";
ddl_City.Items.Clear();
ddl_Region.Items.Clear();
LoadData_ddl(strCmd,DB);
ddl_City.DataSource=LoadArray(DB,strColumn);
ddl_City.DataBind();
ddl_City.Items.Add(Convert.ToString(Session["myCity"]));
ddl_City.SelectedIndex=ds.Tables[DB].Rows.Count;
ddl_Region.Items.Add("不限");
}

private void ddl_City_SelectedIndexChanged(object sender, System.EventArgs e)
{
string strCmd="select * from Area where province='"+ddl_Province.SelectedItem.ToString()+"' and City='"+ddl_City.SelectedItem.ToString()+"' and Level=3";
string DB="Area";
string strColumn="Region";
ddl_Region.Items.Clear();
LoadData_ddl(strCmd,DB);
ddl_Region.DataSource=LoadArray(DB,strColumn);
ddl_Region.DataBind();
ddl_Region.Items.Add("不限");
ddl_Region.SelectedIndex=ds.Tables[DB].Rows.Count;

}


2006-09-21 15:31
chenjin145
Rank: 1
等 级:禁止访问
帖 子:3922
专家分:0
注 册:2006-7-12
得分:0 
LoadData_ddl(strCmd,DB);
LoadArray(DB,strColumn);

這兩個函數看一下

[url=javascript:alert(1);] [div]fdgfdgfdg\" on\"[/div] [/url]
2006-09-21 15:37
iamliubo
Rank: 1
等 级:新手上路
帖 子:357
专家分:0
注 册:2005-11-7
得分:0 
你是说这两个函数有问题吗?

2006-09-21 15:42
chenjin145
Rank: 1
等 级:禁止访问
帖 子:3922
专家分:0
注 册:2006-7-12
得分:0 
現在不曉得

看完了才曉得

[url=javascript:alert(1);] [div]fdgfdgfdg\" on\"[/div] [/url]
2006-09-21 15:44
iamliubo
Rank: 1
等 级:新手上路
帖 子:357
专家分:0
注 册:2005-11-7
得分:0 
private void LoadData_ddl(string strcmd,string DataBase)
{
string strCmd=strcmd;
string DB=DataBase;
SqlConnection conn=new SqlConnection();
SqlCommand cmd=new SqlCommand();
conn.ConnectionString="server=(local);database=searchhouse;user id=lb;password=lb";
cmd.Connection=conn;
cmd.CommandText=strCmd;
da.SelectCommand=cmd;
da.Fill(ds,DB);
conn.Close();
conn.Dispose();
}
private string[] LoadArray(string DB,string strColumn)
{
int num=ds.Tables[DB].Rows.Count;
string[] strDDL=new string[num];
for(int i=0;i<num;i++)
{
strDDL[i]=ds.Tables[DB].Rows[i][strColumn].ToString();
}
return strDDL;
}

2006-09-21 15:53
chenjin145
Rank: 1
等 级:禁止访问
帖 子:3922
专家分:0
注 册:2006-7-12
得分:0 
看起來沒錯

[url=javascript:alert(1);] [div]fdgfdgfdg\" on\"[/div] [/url]
2006-09-21 16:01



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-91842-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.595876 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved