## 我有这样一个表:myID myName
------------------------ -----------------------------
1 aaa
2 bbb
3 ccc## 在VS2003中,我的代码如下:
//
// step 1: 读取上面的表并fill到一个dataset中
//
DataSet ds = new DataSet();SqlDataAdapter da = new SqlDataAdapter(...);
da.Fill(ds, "table1");
//
// step 2: 在该表的开头插入一条记录
//
DataRow dr = ds.Tables["table1"].NewRow();
dr["myID"] = "0";
dr["myName"] = "<all>";
ds.Tables["table1"].Rows.InsertAt(dr, 0);
ds.Tables["table1"].AcceptChanges();
//
// step 3: 把其绑定到comboBox1
//
comboBox1.DataSource = ds.Tables["table1"];
comboBox1.DisplayMember = "myName";
comboBox1.ValueMember = "myID";## 所有运行正常,comboBox1出现绑定表中的记录(包括新插入的那条).
## 但当我运行:comboBox1.SelectedValue = 1; //error## 时,出现异常。
## 我改为:comboBox1.SelectedValue = 2; //no error## 时,没有任何错误。## 另外当我跳过step 2并运行"comboBox1.SelectedValue = 1;"时,也没有错误出现。
## 那么step 2到底有什么错呢?(请不要建议我在“数据库”表中添加"0"-"<all>"的方法!)
------------------------ -----------------------------
1 aaa
2 bbb
3 ccc## 在VS2003中,我的代码如下:
//
// step 1: 读取上面的表并fill到一个dataset中
//
DataSet ds = new DataSet();SqlDataAdapter da = new SqlDataAdapter(...);
da.Fill(ds, "table1");
//
// step 2: 在该表的开头插入一条记录
//
DataRow dr = ds.Tables["table1"].NewRow();
dr["myID"] = "0";
dr["myName"] = "<all>";
ds.Tables["table1"].Rows.InsertAt(dr, 0);
ds.Tables["table1"].AcceptChanges();
//
// step 3: 把其绑定到comboBox1
//
comboBox1.DataSource = ds.Tables["table1"];
comboBox1.DisplayMember = "myName";
comboBox1.ValueMember = "myID";## 所有运行正常,comboBox1出现绑定表中的记录(包括新插入的那条).
## 但当我运行:comboBox1.SelectedValue = 1; //error## 时,出现异常。
## 我改为:comboBox1.SelectedValue = 2; //no error## 时,没有任何错误。## 另外当我跳过step 2并运行"comboBox1.SelectedValue = 1;"时,也没有错误出现。
## 那么step 2到底有什么错呢?(请不要建议我在“数据库”表中添加"0"-"<all>"的方法!)
comboBox1.DataSource = ds.Tables["table1"];
这样看看行不行
其他信息: 指定的参数已超出有效值的范围。to: jinbingg(bing)
不行
for (i=0;i<comboBox1.Items.Count;i++)
{
comboBox1.SelectedIndex = i;
if (comboBox1.SelectedValue.ToString() == "1")
break;
}高手还有解决办法么?
把这一句不要试试
不管有没有,都有问题
而且我添加的是
dr["myID"] = "0";
dr["myName"] = "<all>";
DataColumn dc = null; dc = new DataColumn();
dc.ColumnName = "myID";
dc.DataType = Type.GetType("System.Int32");
dtSource.Columns.Add(dc); dc = new DataColumn();
dc.ColumnName = "myName";
dc.DataType = Type.GetType("System.String");
dtSource.Columns.Add(dc); DataRow dr = null; /*
dr = dtSource.NewRow();
dr["myID"] = 0;
dr["myName"] = "<all>";
dtSource.Rows.Add(dr);
*/ dr = dtSource.NewRow();
dr["myID"] = 1;
dr["myName"] = "aaa";
dtSource.Rows.Add(dr); dr = dtSource.NewRow();
dr["myID"] = 2;
dr["myName"] = "bbb";
dtSource.Rows.Add(dr); dr = dtSource.NewRow();
dr["myID"] = 3;
dr["myName"] = "ccc";
dtSource.Rows.Add(dr); dr = dtSource.NewRow();
dr["myID"] = 0;
dr["myName"] = "<all>";
dtSource.Rows.InsertAt(dr, 0);
dtSource.AcceptChanges(); comboBox1.DataSource = dtSource;
comboBox1.DisplayMember = "myName";
comboBox1.ValueMember = "myID"; comboBox1.SelectedValue = 1; // 没有错误没看出来有什么错误,哈哈
表完全由本地组装是没问题的,但是从服务器下载以后,再加一行,然后绑定,就会有这样的错,郁闷!参数名: “-2147483648”不是“index”的有效值。
参数名: “-2147483648”不是“index”的有效值。
你有搞定了吗?