![]() |
ASP.NET读取数据表数据写入下拉列表。即在下拉列表自动选择相应的项目
本例中下拉列表是“省份”信息,在“学生信息表”中存放的只是“省份ID",具体的省份名称则在另一个表(province)中
分析过程:
0.asp.net下拉列表设置值的方法:ddlsf.selectedvalue= 数据表中的值,不用循环查找确定其值
1.利用SqlDataReader cc = cmd.ExecuteReader();读取数据
if (cc.Read()) //判断查找条件
{
string guan = cc[2].ToString().Trim(); //假设"省份"信息存放在表的第二个字段中,所以用cc[2];再转为字符串,并去掉两边的空格
int av = chazhao(guan)-1; //实际查找相应的省份信息表province中的行号, "索引=行号-1"所以减1
for (int ff=0;ff<ddlsf.Items.Count;ff++) //循环查找这个ddlsf下拉列表中找到上一步找到索引对应的记录 (ddlsf.Items.Count对应这个下拉列表中项的数量)
{
if (ff==av) //只要找到对应的索引,则将这一项的selected的值设为true[这是下拉列表设置的方法:找索引]
{
ddlsf.Items[ff].Selected=true;
break; //找到就可以退出循环了,因为下拉列表项是唯一的,后面就不用再找了
}
}
}
chazhao函数如下:
public int chazhao(string id) //这个函数返回INT值,带一个自变量,就是前面得到数据表保存的数据(省份ID)
{
string connstr="Data Source=.;Password=*******;User ID=sa;Initial Catalog=my" //确认连接数据库字符串
SqlConnection conaa = new SqlConnection(connstr); //实例化连接
string sqla = string.Format("select * from province"); //确认SQL语句,检索一遍才能确定其所在表的行号
if (conaa.State == ConnectionState.Closed) //判断连接是不是关闭状态,如果是则打开
conaa.Open();
SqlCommand cmd = new SqlCommand(sqla, conaa); //实例化这个命令
SqlDataReader cc = cmd.ExecuteReader(); //执行reader
int iia = 0; //初始化变量
while (cc.Read()) //上面确认检索整个数据表,所以利用循环
{
iia++; //检索一个加1
if (cc[0].ToString().Trim() == id) //数据表中只有(provinceid,provincename两个字段),所以用CC[0]比较
break; //如果找到,则退出循环,后面不用找了,到此这个IIA就是ID在表中的行中
}
return iia;//返回这个值
}
Region1