public DataTable GetTables(string sql) //返回ds.Tables["defaulttable"]
{ string SqlConnectionStr=System.Configuration.ConfigurationSettings.AppSettings["SqlConnectionStr"];
SqlConnection Sqlconn=new SqlConnection(SqlConnectionStr);
SqlDataAdapter da=new SqlDataAdapter(sql,Sqlconn);
DataSet ds=new DataSet();
da.Fill(ds,"defaulttable");
return ds.Tables["defaulttable"];
string sql2="select * from province";
Admin.Admin_ClassDb classdb=new Admin.Admin_ClassDb();//引入数据库操作类
sf.DataSource=classdb.GetTables(sql2).DefaultView;
sf.DataTextField="province";
sf.DataValueField="province";
sf.DataBind(); //省份
sf.Items.Add(new ListItem("--选择所属省份--","0"));
sf.SelectedValue="0";}
protected void sf_SelectedIndexChanged(object sender, System.EventArgs e)
{
string sql="select * from City where province='"+sf.SelectedValue.ToString()+"'";
Admin.Admin_ClassDb classdb=new Admin.Admin_ClassDb();//引入数据库操作类
city.DataSource=classdb.GetTables(sql).DefaultView;
city.DataTextField="City";
city.DataValueField="Cityid";
city.DataBind(); //城市}
protected void InitText()
{ ......//省略
if (MyReader.HasRows)
{
while (MyReader.Read())
{ sf.Text = MyReader.GetValue(MyReader.GetOrdinal("UserProvince")).ToString();
City.Text=MyReader.GetValuetValue(MyReader.GetOrdinal("UserCity")).ToString();
DLSex.Items.Clear();
DLSex.Items.Add(new ListItem("男", "1"));
DLSex.Items.Add(new ListItem("女", "0"));
if (MyReader.GetValue(MyReader.GetOrdinal("UserSex")).ToString() == "True")
{
DLSex.Items.FindByValue("1").Selected = true;
}
else
{
DLSex.Items.FindByValue("0").Selected = true;
}
if (MyReader.GetValue(MyReader.GetOrdinal("UserBirthday")).ToString() != "")
{
txtUserBirthYear.Text = System.Convert.ToDateTime(MyReader.GetValue(MyReader.GetOrdinal("UserBirthday"))).Year.ToString();
DLBirthMonth.Items.FindByValue(System.Convert.ToDateTime(MyReader.GetValue(MyReader.GetOrdinal("UserBirthday"))).Month.ToString()).Selected = true;
DLBirthDay.Items.FindByValue(System.Convert.ToDateTime(MyReader.GetValue(MyReader.GetOrdinal("UserBirthday"))).Day.ToString()).Selected = true;
}
}
}
}
protected void btnAdd_Click(object sender, System.EventArgs e)
{
try
{
int sex = System.Convert.ToInt32(DLSex.SelectedValue.ToString().Trim());
string UserBirth = txtUserBirthYear.Text.Trim()
+ "-"
+ DLBirthMonth.SelectedValue.ToString().Trim()
+ "-"
+ DLBirthDay.SelectedValue.ToString().Trim();
string province = sf.Text.Trim();
string usercity = City.SelectedItem.Text.Trim(); }
{
}
}执行的结果是显示了省份,而无法显示城市。而在数据库里有城市和省份的数据(福建 福州),显示出来只有福建。如果再选择其他省份的时候,会出现“City”有一个无效 SelectedValue,因为它不在项目列表中。当然city没有被显示出来为空,也就是无效selectedvalue。重点的几个地方我都标了红色。其他地方应该没有错。大家帮我看看,是哪处出现错误了,应该怎么改才可以。谢谢
{ string SqlConnectionStr=System.Configuration.ConfigurationSettings.AppSettings["SqlConnectionStr"];
SqlConnection Sqlconn=new SqlConnection(SqlConnectionStr);
SqlDataAdapter da=new SqlDataAdapter(sql,Sqlconn);
DataSet ds=new DataSet();
da.Fill(ds,"defaulttable");
return ds.Tables["defaulttable"];
string sql2="select * from province";
Admin.Admin_ClassDb classdb=new Admin.Admin_ClassDb();//引入数据库操作类
sf.DataSource=classdb.GetTables(sql2).DefaultView;
sf.DataTextField="province";
sf.DataValueField="province";
sf.DataBind(); //省份
sf.Items.Add(new ListItem("--选择所属省份--","0"));
sf.SelectedValue="0";}
protected void sf_SelectedIndexChanged(object sender, System.EventArgs e)
{
string sql="select * from City where province='"+sf.SelectedValue.ToString()+"'";
Admin.Admin_ClassDb classdb=new Admin.Admin_ClassDb();//引入数据库操作类
city.DataSource=classdb.GetTables(sql).DefaultView;
city.DataTextField="City";
city.DataValueField="Cityid";
city.DataBind(); //城市}
protected void InitText()
{ ......//省略
if (MyReader.HasRows)
{
while (MyReader.Read())
{ sf.Text = MyReader.GetValue(MyReader.GetOrdinal("UserProvince")).ToString();
City.Text=MyReader.GetValuetValue(MyReader.GetOrdinal("UserCity")).ToString();
DLSex.Items.Clear();
DLSex.Items.Add(new ListItem("男", "1"));
DLSex.Items.Add(new ListItem("女", "0"));
if (MyReader.GetValue(MyReader.GetOrdinal("UserSex")).ToString() == "True")
{
DLSex.Items.FindByValue("1").Selected = true;
}
else
{
DLSex.Items.FindByValue("0").Selected = true;
}
if (MyReader.GetValue(MyReader.GetOrdinal("UserBirthday")).ToString() != "")
{
txtUserBirthYear.Text = System.Convert.ToDateTime(MyReader.GetValue(MyReader.GetOrdinal("UserBirthday"))).Year.ToString();
DLBirthMonth.Items.FindByValue(System.Convert.ToDateTime(MyReader.GetValue(MyReader.GetOrdinal("UserBirthday"))).Month.ToString()).Selected = true;
DLBirthDay.Items.FindByValue(System.Convert.ToDateTime(MyReader.GetValue(MyReader.GetOrdinal("UserBirthday"))).Day.ToString()).Selected = true;
}
}
}
}
protected void btnAdd_Click(object sender, System.EventArgs e)
{
try
{
int sex = System.Convert.ToInt32(DLSex.SelectedValue.ToString().Trim());
string UserBirth = txtUserBirthYear.Text.Trim()
+ "-"
+ DLBirthMonth.SelectedValue.ToString().Trim()
+ "-"
+ DLBirthDay.SelectedValue.ToString().Trim();
string province = sf.Text.Trim();
string usercity = City.SelectedItem.Text.Trim(); }
{
}
}执行的结果是显示了省份,而无法显示城市。而在数据库里有城市和省份的数据(福建 福州),显示出来只有福建。如果再选择其他省份的时候,会出现“City”有一个无效 SelectedValue,因为它不在项目列表中。当然city没有被显示出来为空,也就是无效selectedvalue。重点的几个地方我都标了红色。其他地方应该没有错。大家帮我看看,是哪处出现错误了,应该怎么改才可以。谢谢
string sql="select * from City where province='"+sf.SelectedValue.ToString()+"'";
sf.Text = MyReader.GetValue(MyReader.GetOrdinal("UserProvince")).ToString();
City.Text=MyReader.GetValuetValue(MyReader.GetOrdinal("UserCity")).ToString();
string province = sf.Text.Trim();
string usercity = City.SelectedItem.Text.Trim();
还有这个代码是在这里面的,忘了写了private void DataGridDataBind()
{ string sql2="select * from province";......
}
还有DataGridDataBind()InitText()都有!IsPostBack。我也试着将City.Text=MyReader.....改成city.selectitms.text=myreader..........也不行,不仅城市没有显示,连其他的dropdownlist都没有显示了。
sf.vlaue还要设置dropdownlist
autoback...属性
sf.Text = MyReader.GetValue(MyReader.GetOrdinal("UserProvince")).ToString();
City.Text=MyReader.GetValuetValue(MyReader.GetOrdinal("UserCity")).ToString();
string province = sf.Text.Trim();
string usercity = City.SelectedItem.Text.Trim();
如图所示:
{
加了一句//label1.text=MyReader.GetValuetValue(MyReader.GetOrdinal("UserCity")).ToString(); }
运行结果是厦门市。把city的值显示出来了。这就奇怪了为什么City.Text=MyReader.GetValuetValue(MyReader.GetOrdinal("UserCity")).ToString(); 这个就显示不了呢??我觉得应该是这句有问题。太奇怪了!!!!!!!
把City.Text=MyReader.GetValuetValue(MyReader.GetOrdinal("UserCity")).ToString(); 改成City.Items.Add(MyReader.GetValue(MyReader.GetOrdinal("UserCity")).ToString());
这么多人没有一个能说出点意思来。哎,对CSDN没什么信心啊。