dropdownlist控件当使用this.ddlist.SelectedValue=rdr.GetValue(3)+"";查询时报错,如下:异常详细信息: System.ArgumentOutOfRangeException: 指定的参数已超出有效值的范围。参数名: 勘察设计类。而我新添加一条信息或者查询类别为别的时候都不报错,只有查询类别为勘察设计类的时候不报错。前提:我是按照编号查询的。
if(!IsPostBack)
{
this.Dlei.Items.Add("--请选择--");
this.Dlei.Items.Add("咨询类");
this.Dlei.Items.Add("勘测设计类");
}
if(!IsPostBack)
{
this.Dlei.Items.Add("--请选择--");
this.Dlei.Items.Add("咨询类");
this.Dlei.Items.Add("勘测设计类");
}
解决方案 »
- asp.net 2003 根据IP自动跳转到分站
- 如何在SELECT的时候同时更新字段内容?
- RequiredFieldValidator控件,怎么指定仅仅一个按钮按下时才验证。
- cute editor编辑器更新数据问题
- 求一个正则表达式:)
- datalist比较熟悉的请进~!
- 请问学asp.net之前要先学vb.net吗?vb.net和vb之间语法差距有多大?c#.net和vb.net差别有多大?
- 选修课系统MS-SQL建标的问题。
- 网站速度较慢,请教可以如何优化?(asp.net+c#+SQL Server)
- 请教:关于Response.Redirect()的问题:
- CS 文件无法调用控件
- 我原来用.net 3.5 做的WCF程序 为什么打上sp1补丁就运行不了了 服务器是Windows2003
this.Dlei.Items.Add("咨询类");
this.Dlei.Items.Add("勘测设计类");
你一共只有三个选项,这个索引是从0开始的,所以最后一个才只是2,你却用了索引3,当然超出了
这只是一段代码。我是用reader从数据库读取的数据。类别字段在数据库中在第二位。
{
string SocutLink ="uid=sa;pwd=sa;database=win;server=.";
SqlConnection ConnSql = new SqlConnection (SocutLink); //生成一个新的连接
ConnSql.Open(); //打开数据库
string strupdate="select * from win_data where sn='"+this.Tsn.Text+"'";
SqlCommand cmd=new SqlCommand (strupdate,ConnSql);//创建Command命令对象
SqlDataReader rdr; //声明一个DataReader对象
rdr=cmd.ExecuteReader();
if(rdr.Read())
{
Tsn.Text=rdr.GetValue(1)+"";
Tname.Text=rdr.GetValue(2)+"";
this.Dlei.SelectedValue=rdr.GetValue(3)+"";
//Dlei.SelectedValue=rdr.GetValue(3)+"";
Tpeople.Text=rdr.GetValue(4)+"";
Twin.Text=rdr.GetValue(5)+"";
Lstr.Text=rdr.GetValue(1)+"";
Ladd.Text="修改";
}
ConnSql.Close();
}
呵呵,没错就是这个问题。这个程序是以前别人做的,叫我改,dropdownlist里的值和数据库中的值不一致导致读取错误,害的我搞了半天最后才发现当时没注意。呵呵,下回可要仔细点啊
Items.Add("")这个方法应该有个重载的方法Items.Add("","")
第一个方法string是指的Text
重载的方法第一个string是Text,第二个string是Value
所以Items.Add("--请选择--"); 这么添加的Item它们的Value应该都是""(空值);
所以SelectedValue是找不到的.