点击"修改"按扭,就将文本框TxtPRI中的数据存入到数据库中的字段pri(int型),源代码如下:private void DataGrid1_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
int ID=Convert.ToInt32(e.Item.Cells[0].Text); string PRI=((TextBox)e.Item.FindControl("TxtPRI")).ToString(); if (PRI=="")
{
Response.Write("<script>alert('优先级不能为空!');</script>");
}
else
{
this.UpDatainfoPRI(ID,int.Parse(PRI.Trim()));
}
DataGrid1.EditItemIndex=-1;
this.databing();
}
{
int ID=Convert.ToInt32(e.Item.Cells[0].Text); string PRI=((TextBox)e.Item.FindControl("TxtPRI")).ToString(); if (PRI=="")
{
Response.Write("<script>alert('优先级不能为空!');</script>");
}
else
{
this.UpDatainfoPRI(ID,int.Parse(PRI.Trim()));
}
DataGrid1.EditItemIndex=-1;
this.databing();
}
解决方案 »
- 求助:GridView中的asp:ButtonField的用法
- 关于asp.net 和页面小脚本
- 动态获取GridView各单元格中的值
- ASP.NET中软件找到软件用户和密码
- 请问一下,一般做购物车用把购买的产品放在哪里?Session?ArrayList?Hashtable?
- 数据插入问题!
- 如何利用CMail组件在.net 平台下实现邮件收发
- sql2005连接错误
- 用asp.net和c#开发了OA系统,如何实现MSN或QQ即时弹出信息框
- asp.net accordion 在IE7中滚动条样式异常,怎么处理
- 一个有关字符串的问题搞不定,大家帮忙啊,急!在线等啊
- .NET 技术群 9987202
public void UpDatainfoPRI(int id,int PRI)
{
string StrSql;
StrSql="Update news_content set PRI='"+PRI+"' where ID='"+id+"'";
try
{
this.con.ExcuteTable(StrSql);
}
catch(System.Data.SqlClient.SqlException e)
{
throw new Exception(e.Message);
}
}
--------------------------------------------------------------------------------输入字符串的格式不正确。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.FormatException: 输入字符串的格式不正确。源错误:
行 166: else
行 167: {
行 168: this.UpDatainfoPRI(ID,int.Parse(PRI.Trim()));
行 169: }
行 170: DataGrid1.EditItemIndex=-1;
//错误提示为 168行出错!输入字符串的格式不对!
------- -------去掉单引号
这样应该可以了
D:\reg\News\Editnews_hs.aspx.cs(109): 运算符“&”无法应用于“string”和“int”类型的操作数
异常详细信息: System.FormatException: 输入字符串的格式不正确。源错误:
行 166: else
行 167: {
行 168: this.UpDatainfoPRI(ID,int.Parse(PRI.Trim()));
行 169: }
行 170: DataGrid1.EditItemIndex=-1;
源文件: d:\reg\news\editnews_hs.aspx.cs 行: 168
如果pri、id是字符串类型那么它这样写也没错误。
其次你单步跟踪下具体运行到你UpDatainfoPRI()里面哪个语句有错误,并且提取下sql语句到数据库的sql执行工具里面测试执行下
StrSql="Update news_content set PRI='"+PRI+"' where ID="+id;
{
Response.Write("<script>alert('优先级不能为空!');</script>");
}
else
{
this.UpDatainfoPRI(ID,int.Parse(PRI.Trim()));
}
DataGrid1.EditItemIndex=-1;
this.databing();
你取到的是TextBOx,而非其值
我根据你的想法单步执行,发现:PRI="System.Web.UI.WebControls.TextBox",没有获得一个数值!
是:string PRI=((TextBox)e.Item.FindControl("TxtPRI")).ToString();这句发生了错误,
我按照heatwin() 说的改为:string PRI=((TextBox)e.Item.FindControl("TxtPRI")).Text;却发现PRI值为空!这又是为什么?该怎么改呢?继续求助!
我按你的办法试了一下,跟踪PRI的值也为空!
TextBox PRI=(TextBox)e.Item.FindControl("TxtPRI");
得不到DataGrid中TextBox框中填入的值,怎么得到DataGrid中文本框的值呢?
if (PRI=="")
{
Response.Write("<script>alert('优先级不能为空!');</script>");
}
else
{
this.UpDatainfoPRI(ID,int.Parse(PRI.Trim())); //调用修改函数,修改数据库中的值
}
DataGrid1.EditItemIndex=-1;
this.databing();//重新绑定数据