异常详细信息: System.ArgumentOutOfRangeException: 指定的参数已超出有效值的范围。参数名: index源错误:
行 115:
行 116:
行 117: string updateCmd="UPDATE Csmx set dlb='"+strdlb+"', mc='"+strmc+"',dh="+strdh+",llr="+strllr+",yddh="+stryddh+",lxdz="+strlxdz+",cz="+strcz+" where DataGrid1.DataKeys[e.Item.ItemIndex]='"+((TextBox)e.Item.Cells[1].Controls[0]).Text+"'";
行 118: SqlConnection con=new SqlConnection(conStr);
行 119: SqlCommand myCommand=new SqlCommand(updateCmd,con);
相关代码:
protected void DataGrid1_Update(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e) { string conStr = ConfigurationSettings.AppSettings["connString"];
//int getcsbh=(int)DataGrid1.DataKeys[(int)e.Item.ItemIndex];
string strdlb = ((TextBox)e.Item.Cells[0].Controls[0]).Text;
string strmc = ((TextBox)e.Item.Cells[2].Controls[0]).Text;
string strdh = ((TextBox)e.Item.Cells[3].Controls[0]).Text;
string strllr = ((TextBox)e.Item.Cells[4].Controls[0]).Text;
string stryddh = ((TextBox)e.Item.Cells[5].Controls[0]).Text;
string strlxdz = ((TextBox)e.Item.Cells[6].Controls[0]).Text;
string strcz = ((TextBox)e.Item.Cells[7].Controls[0]).Text;
string updateCmd="UPDATE Csmx set dlb='"+strdlb+"', mc='"+strmc+"',dh="+strdh+",llr="+strllr+",yddh="+stryddh+",lxdz="+strlxdz+",cz="+strcz+" where DataGrid1.DataKeys[e.Item.ItemIndex]='"+((TextBox)e.Item.Cells[1].Controls[0]).Text+"'";
SqlConnection con=new SqlConnection(conStr);
SqlCommand myCommand=new SqlCommand(updateCmd,con);
myCommand.Connection.Open();
myCommand.ExecuteNonQuery();
DataGrid1.EditItemIndex=-1;
GetSqlData();
}
private void GetSqlData()
{
string conStr = ConfigurationSettings.AppSettings["connString"];
string strsql= "select * from Csmx where mc like '%"+mc.Text.ToString()+"%' AND dlb like '%"+DropDownList1.SelectedItem.Value+"%' ";
SqlConnection cxconn=new SqlConnection( conStr);
SqlDataAdapter cxAdapter = new SqlDataAdapter(strsql,cxconn);
cxconn.Open();
DataSet cxSet=new DataSet();
cxAdapter.Fill(cxSet,"Csmx");
DataGrid1.DataSource=cxSet;
DataGrid1.DataBind();
}
请老鸟帮忙!看看如何解决!
行 115:
行 116:
行 117: string updateCmd="UPDATE Csmx set dlb='"+strdlb+"', mc='"+strmc+"',dh="+strdh+",llr="+strllr+",yddh="+stryddh+",lxdz="+strlxdz+",cz="+strcz+" where DataGrid1.DataKeys[e.Item.ItemIndex]='"+((TextBox)e.Item.Cells[1].Controls[0]).Text+"'";
行 118: SqlConnection con=new SqlConnection(conStr);
行 119: SqlCommand myCommand=new SqlCommand(updateCmd,con);
相关代码:
protected void DataGrid1_Update(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e) { string conStr = ConfigurationSettings.AppSettings["connString"];
//int getcsbh=(int)DataGrid1.DataKeys[(int)e.Item.ItemIndex];
string strdlb = ((TextBox)e.Item.Cells[0].Controls[0]).Text;
string strmc = ((TextBox)e.Item.Cells[2].Controls[0]).Text;
string strdh = ((TextBox)e.Item.Cells[3].Controls[0]).Text;
string strllr = ((TextBox)e.Item.Cells[4].Controls[0]).Text;
string stryddh = ((TextBox)e.Item.Cells[5].Controls[0]).Text;
string strlxdz = ((TextBox)e.Item.Cells[6].Controls[0]).Text;
string strcz = ((TextBox)e.Item.Cells[7].Controls[0]).Text;
string updateCmd="UPDATE Csmx set dlb='"+strdlb+"', mc='"+strmc+"',dh="+strdh+",llr="+strllr+",yddh="+stryddh+",lxdz="+strlxdz+",cz="+strcz+" where DataGrid1.DataKeys[e.Item.ItemIndex]='"+((TextBox)e.Item.Cells[1].Controls[0]).Text+"'";
SqlConnection con=new SqlConnection(conStr);
SqlCommand myCommand=new SqlCommand(updateCmd,con);
myCommand.Connection.Open();
myCommand.ExecuteNonQuery();
DataGrid1.EditItemIndex=-1;
GetSqlData();
}
private void GetSqlData()
{
string conStr = ConfigurationSettings.AppSettings["connString"];
string strsql= "select * from Csmx where mc like '%"+mc.Text.ToString()+"%' AND dlb like '%"+DropDownList1.SelectedItem.Value+"%' ";
SqlConnection cxconn=new SqlConnection( conStr);
SqlDataAdapter cxAdapter = new SqlDataAdapter(strsql,cxconn);
cxconn.Open();
DataSet cxSet=new DataSet();
cxAdapter.Fill(cxSet,"Csmx");
DataGrid1.DataSource=cxSet;
DataGrid1.DataBind();
}
请老鸟帮忙!看看如何解决!
解决方案 »
- access数据库中设置的日期格式的问题
- 程序打开新页面并自动触发某事件,再自动关闭该页面
- 汗死。。被一个极其白菜的问题困扰了几个星期。。。
- 更新数据时怎么会出现这种情况?
- DataGrid1 控件 删除问题
- 请问那里能下win2003 64位的中文版
- 动网的[论坛总在线]可以精确的计算出用户所在论坛的位置,不所用Asp.net(c#)应如何实现
- csdn中的短消息提示是如何实现的?
- 怎样使用System.Web.Mail配合网上的免费smtp服务器发“附件”(有些问题亟待解决)
- 如何在Page_Load判断Click的是页面中的哪个用户控件?
- 如何给手机发短信?asp.net&c#
- 如何根据当前日期求出上一周的第一天和本周的第一天?
这句有问题
DataGrid1.DataKeys[e.Item.ItemIndex]不应写在引号里面
应该e.Item.Cells[1].Controls[0]这里的索引值不对,设断点调试很容易查出来的啊
在Where 后面有问题吧
string updateCmd="UPDATE Csmx set dlb='"+strdlb+"', mc='"+strmc+"',dh="+strdh+",llr="+strllr+",yddh="+stryddh+",lxdz="+strlxdz+",cz="+strcz+" where“ + DataGrid1.DataKeys[e.Item.ItemIndex](或你的KEY变量) + ”='"+((TextBox)e.Item.Cells[1].Controls[0]).Text+"'";
//int getcsbh=(int)DataGrid1.DataKeys[(int)e.Item.ItemIndex];
string getcsbh=DataGrid1.DataKeys[e.Item.ItemIndex].ToString();
string strdlb = ((TextBox)e.Item.Cells[0].Controls[0]).Text;
string strmc = ((TextBox)e.Item.Cells[2].Controls[0]).Text;
string strdh = ((TextBox)e.Item.Cells[3].Controls[0]).Text;
string strllr = ((TextBox)e.Item.Cells[4].Controls[0]).Text;
string stryddh = ((TextBox)e.Item.Cells[5].Controls[0]).Text;
string strlxdz = ((TextBox)e.Item.Cells[6].Controls[0]).Text;
string strcz = ((TextBox)e.Item.Cells[7].Controls[0]).Text;
string updateCmd="UPDATE Csmx set dlb='"+strdlb+"', mc='"+strmc+"',dh="+strdh+",llr="+strllr+",yddh="+stryddh+",lxdz="+strlxdz+",cz="+strcz+" where getcsbh ='"+((TextBox)e.Item.Cells[1].Controls[0]).Text+"'";
SqlConnection con=new SqlConnection(conStr);
SqlCommand myCommand=new SqlCommand(updateCmd,con);
myCommand.Connection.Open();
myCommand.ExecuteNonQuery();
DataGrid1.EditItemIndex=-1;
GetSqlData();
}
行 122: SqlCommand myCommand=new SqlCommand(updateCmd,con);
行 123: myCommand.Connection.Open();
行 124: myCommand.ExecuteNonQuery();
行 125: DataGrid1.EditItemIndex=-1;
行 126: GetSqlData();
我代码以改为:
protected void DataGrid1_Update(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e) { string conStr = ConfigurationSettings.AppSettings["connString"];
//int getcsbh=(int)DataGrid1.DataKeys[(int)e.Item.ItemIndex];
// string getcsbh=DataGrid1.DataKeys[e.Item.ItemIndex].ToString();
string strcsbh = e.Item.Cells[1].Text.ToString();
string strdlb = ((TextBox)e.Item.Cells[0].Controls[0]).Text.ToString();
string strmc = ((TextBox)e.Item.Cells[2].Controls[0]).Text.ToString();
string strdh = ((TextBox)e.Item.Cells[3].Controls[0]).Text.ToString();
string strllr = ((TextBox)e.Item.Cells[4].Controls[0]).Text.ToString();
string stryddh = ((TextBox)e.Item.Cells[5].Controls[0]).Text.ToString();
string strlxdz = ((TextBox)e.Item.Cells[6].Controls[0]).Text.ToString();
string strcz = ((TextBox)e.Item.Cells[7].Controls[0]).Text.ToString();
//string updateCmd="UPDATE Csmx set dlb='"+strdlb+"', mc='"+strmc+"',dh="+strdh+",llr="+strllr+",yddh="+stryddh+",lxdz="+strlxdz+",cz="+strcz+" where getcsbh ='"+((TextBox)e.Item.Cells[1].Controls[0]).Text+"'";
string updateCmd="UPDATE Csmx set dlb='"+strdlb+"', mc='"+strmc+"',dh="+strdh+",llr="+strllr+",yddh="+stryddh+",lxdz="+strlxdz+",cz="+strcz+" where csbh ="+strcsbh;
SqlConnection con=new SqlConnection(conStr);
SqlCommand myCommand=new SqlCommand(updateCmd,con);
myCommand.Connection.Open();
myCommand.ExecuteNonQuery();
DataGrid1.EditItemIndex=-1;
GetSqlData();
}
麻烦各位高手帮我这位菜鸟看看!谢谢了!