还是个老问题,我在datagrid的模板列里增加了个DropDownList,但是在更新的时候老是提示出错,帮我看看啊 ,更新代码如下: if (e.Item.ItemType==ListItemType.EditItem)//更新操作
{
string conn=ConfigurationSettings.AppSettings["odbc"];
OleDbConnection myConnection= new OleDbConnection(conn);
myConnection.Open();
TextBox txt1 = (TextBox)(e.Item.FindControl("TextBox1"));
string text1 =txt1.Text; //得到第二列的值
TextBox txt2 = (TextBox)(e.Item.FindControl("TextBox2"));
string text2 =txt2.Text; //得到第三列的值 TextBox txt3 = (TextBox)(e.Item.FindControl("TextBox3"));
string text3 =txt3.Text; //得到第四列的值
DropDownList txt4 = (DropDownList)(e.Item.FindControl("DropDownList2"));
string text4 =txt4.SelectedItem.Text; //得到第五列的值
txt4.Items.FindByValue(e.Item.Cells[4].Text.ToString()).Selected=true;//选择数据库内的作为默认
string updateCmd = "UPDATE place SET placename=@placename, placelei =@placelei, placehei =@placehei,placewid =@placewid ";OleDbCommand myCommand = new OleDbCommand(updateCmd, myConnection);
myCommand.Parameters.Add(new OleDbParameter("@placename", OleDbType.VarChar, 40));
myCommand.Parameters["@placename"].Value=txt1.Text; myCommand.Parameters.Add(new OleDbParameter("@placehei", OleDbType.VarChar, 20));
myCommand.Parameters["@placehei"].Value=txt2.Text;myCommand.Parameters.Add(new OleDbParameter("@placeheid", OleDbType.Char, 20));
myCommand.Parameters["@placeheid"].Value=txt3.Text;
OleDbParameter parm2=new OleDbParameter("@placelei", OleDbType.VarChar, 40);
parm2.Value=((DropDownList)e.Item.FindControl("DropDownList2")).SelectedValue;
myCommand.Parameters.Add(parm2);
myCommand.ExecuteNonQuery();
DataGrid1.EditItemIndex = -1;
myConnection.Close();
BindGrid();
}
更新操作时提示错误是:“/guanggao”应用程序中的服务器错误。
--------------------------------------------------------------------------------
未将对象引用设置到对象的实例。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。
源错误:
行 144: DropDownList txt4 = (DropDownList)(e.Item.FindControl("DropDownList2"));
行 145: string text4 =txt4.SelectedItem.Text; //得到第五列的值
行 146: txt4.Items.FindByValue(e.Item.Cells[4].Text.ToString()).Selected=true; //选择数据库内的作为默认
行 147:
行 148: string updateCmd = "UPDATE place SET placename=@placename, placelei =@placelei, placehei =@placehei,placewid =@placewid ";
源文件: e:\d\guanggao\addadw.aspx.cs 行: 146
到底时啥问题啊,我参考了网上的一些资料还是不行,该怎么修改
{
string conn=ConfigurationSettings.AppSettings["odbc"];
OleDbConnection myConnection= new OleDbConnection(conn);
myConnection.Open();
TextBox txt1 = (TextBox)(e.Item.FindControl("TextBox1"));
string text1 =txt1.Text; //得到第二列的值
TextBox txt2 = (TextBox)(e.Item.FindControl("TextBox2"));
string text2 =txt2.Text; //得到第三列的值 TextBox txt3 = (TextBox)(e.Item.FindControl("TextBox3"));
string text3 =txt3.Text; //得到第四列的值
DropDownList txt4 = (DropDownList)(e.Item.FindControl("DropDownList2"));
string text4 =txt4.SelectedItem.Text; //得到第五列的值
txt4.Items.FindByValue(e.Item.Cells[4].Text.ToString()).Selected=true;//选择数据库内的作为默认
string updateCmd = "UPDATE place SET placename=@placename, placelei =@placelei, placehei =@placehei,placewid =@placewid ";OleDbCommand myCommand = new OleDbCommand(updateCmd, myConnection);
myCommand.Parameters.Add(new OleDbParameter("@placename", OleDbType.VarChar, 40));
myCommand.Parameters["@placename"].Value=txt1.Text; myCommand.Parameters.Add(new OleDbParameter("@placehei", OleDbType.VarChar, 20));
myCommand.Parameters["@placehei"].Value=txt2.Text;myCommand.Parameters.Add(new OleDbParameter("@placeheid", OleDbType.Char, 20));
myCommand.Parameters["@placeheid"].Value=txt3.Text;
OleDbParameter parm2=new OleDbParameter("@placelei", OleDbType.VarChar, 40);
parm2.Value=((DropDownList)e.Item.FindControl("DropDownList2")).SelectedValue;
myCommand.Parameters.Add(parm2);
myCommand.ExecuteNonQuery();
DataGrid1.EditItemIndex = -1;
myConnection.Close();
BindGrid();
}
更新操作时提示错误是:“/guanggao”应用程序中的服务器错误。
--------------------------------------------------------------------------------
未将对象引用设置到对象的实例。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。
源错误:
行 144: DropDownList txt4 = (DropDownList)(e.Item.FindControl("DropDownList2"));
行 145: string text4 =txt4.SelectedItem.Text; //得到第五列的值
行 146: txt4.Items.FindByValue(e.Item.Cells[4].Text.ToString()).Selected=true; //选择数据库内的作为默认
行 147:
行 148: string updateCmd = "UPDATE place SET placename=@placename, placelei =@placelei, placehei =@placehei,placewid =@placewid ";
源文件: e:\d\guanggao\addadw.aspx.cs 行: 146
到底时啥问题啊,我参考了网上的一些资料还是不行,该怎么修改
解决方案 »
- 帮忙看看哪里错了
- 新建ASP.NET Web应用程序,出现http/11 500 Server Error?
- 网站前台登入和后台登入,session?页面跳转?
- 左侧导航设计 标题我也不知道如何取 大哥大姐帮帮忙
- 关于保存会话状态的问题,session?cookies?application?
- ASP.NET 运行时错误: 在应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的节是错误
- 正则表达式,急!
- 怎么调试javascript
- 新手asp.net提问
- ~~~~Grid中Checkox如何知道是否选种~~~
- ----100分求个解决SQL语句,想了一上午也没有想出来-----在线等
- 怎样将一个DataRow中的数据,完全的拷贝到另一个DataRow中。
e.Item.Cell[index].FindControl("ControlName");
这里能具体点吗?
绑定是直接绑定的。
e.Item.Cells[4].Text.ToString
这个值是多少?