无法Updata数据??

yyang_kj 2003-08-21 12:09:12
public void MyDataGrid_Update(Object sender, DataGridCommandEventArgs e)
{
string txtname = ((TextBox)e.Item.Cells[2].Controls[0]).Text;
string txtpasswd = ((TextBox)e.Item.Cells[3].Controls[0]).Text;
string txtemail = ((TextBox)e.Item.Cells[4].Controls[0]).Text;
string txtpower = ((TextBox)e.Item.Cells[5].Controls[0]).Text;
string txtsex = ((TextBox)e.Item.Cells[6].Controls[0]).Text;
string txttel = ((TextBox)e.Item.Cells[7].Controls[0]).Text;
string txtfrom = ((TextBox)e.Item.Cells[8].Controls[0]).Text;
string txtshenghe = ((TextBox)e.Item.Cells[9].Controls[0]).Text;

SqlConnection connUpdate = new SqlConnection("server=192.168.0.1;uid=db_admin;pwd=admin;database=Jxdb");
connUpdate.Open();

String sql_edit = "UPDATE Reg " +
"SET name = '" + txtname.Replace("'","''")+ "'," +
"passwd = '" + txtpasswd.Replace("'","''")+ "'," +
"email = '" + txtemail.Replace("'","''")+ "'," +
"power = '" + txtpower.Replace("'","''")+ "'," +
"sex = '" + txtsex.Replace("'","''")+ "'," +
"tel = '" + txttel.Replace("'","''")+ "'," +
"frm = '" + txtfrom.Replace("'","''")+ "'," +
"shenghe = '" + txtshenghe.Replace("'","''")+ "'" +
" WHERE id = " + e.Item.Cells[1].Text;


SqlCommand sqlCommandUpdate = new SqlCommand(sql_edit,connUpdate);
sqlCommandUpdate.ExecuteNonQuery();
connUpdate.Close();

MyDataGrid.EditItemIndex = -1;
MyDataGrid.DataBind();


}

为什么无法Update数据?

估计是string txtname = ((TextBox)e.Item.Cells[2].Controls[0]).Text;
没有取到值。Controls[0]是什么意思呀?
帮忙~~
...全文
43 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
godblessyU 2003-08-21
  • 打赏
  • 举报
回复
同意楼上的
wd_318 2003-08-21
  • 打赏
  • 举报
回复
Controls[0]:是指控件集中的第一个控件,因为格子中可以放多个控件的
wd_318 2003-08-21
  • 打赏
  • 举报
回复
用模板列比较好:
datagrid中这样定义:
<asp:TemplateColumn SortExpression="iItemOrder" HeaderText="显示位置">
<HeaderStyle Width="10%"></HeaderStyle>
<ItemTemplate>
<asp:Label runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "iItemOrder") %>'/>
</ItemTemplate>

<EditItemTemplate>
<asp:TextBox runat="server" id="iItemOrder" Width="100%" Text='<%# DataBinder.Eval(Container.DataItem, "iItemOrder") %>'/>
</EditItemTemplate>
</asp:TemplateColumn>

调用时如下即可:
((TextBox)e.Item.FindControl("iItemOrder")).Text.ToString()
yyang_kj 2003-08-21
  • 打赏
  • 举报
回复
哦,明白了!谢谢
seesea125 2003-08-21
  • 打赏
  • 举报
回复
see
为什么我的dropdownLsit或checkboxlist或其它什么控件不能取到修改后的值,或是不能响应用户的修改(通俗一点的说是老是显示那一个值,不会改变)。其实这个问题最根本的原因是没有完全理解asp.net中页面的执行(处理)过程,今天我们就这个问题说说。
参考msdn中的"web 窗体页处理”(ms-help://MS.VSCC/MS.MSDNVS.2052/Vbcon/html/vbconWebFormsPageProcessingStages.htm),我们先理解一个概念---往返行程:浏览器向用户显示一个窗体,用户与该窗体进行交互,这导致该窗体回发到服务器。但是,因为与服务器组件进行交互的所有处理必须在服务器上发生,这意味着对于要求处理的每一操作而言,必须将该窗体发送到服务器、进行处理、然后返回到浏览器。这一事件序列称作“往返行程”。因此我们不难理解,为什么建议多使用html控件(客户端控件),而不是web控件(服务器端控件);为什么web控件不支持onmouseover、onmouseout事件了。因为它们要每触发一次都要在服务器和客户端间往返一次,也就我们所说的会引起"刷屏" 。但我们可以为web控件增加客户端的事件以支持这些操作,因为有时候必须用到。
理解了"往返行程"后,我们再来理解一下web页面的另一个特性----无状态性:客户端向服务器发送一个请求(譬如你在IE栏输入网址,回车),服务器接到请求,响应请求(处理事件),服务器完成处理后将生成的web页发送回浏览器,然后就清除该页的信息,释放服务器资源。服务再等待下一次请求,即使下一次是请求同一页,服务器重新开始创建和处理该页。服务器就是这样不停的重复这一过程。服务器不记录页面的状态或信息的特性我们就称之为“无状态性”。也许有朋友会问,我的控件每次刷新时会自动保存状态啊,那是因为asp.net引入了视图状态和状态管理,它会自动保持web控件的状态。关于服务器是怎样保存web控件的状态,我想我以后有能力或有时间的时候再写吧。请接着往下看。
理解了这两个基本概念后,我们就来看看asp.net中的服务器处理页面的一个过程,服务器处理页面过程(大概)分以下几个阶段:ASP.NET 页框架初始化(Page_Init() )à 用户代码初始化(page_load()) à 验证(调用任何验证程序 Web 服务器控件的 Validate 方法来执行该控件的指定验证) à 事件处理(处理所引发的特定事件) à 清除(page_unload()),每一阶段会触发不同的事件,阶段后面的括号内容就是该阶段触发的事件。由此我们知道服务器每次执行页面代码的过程就是:page_init() à page_load() à vlidate函数(web控件的验证事件,应具体到实际的应用中)à 引起页面回发的具体事件(例如button 的click事件等) à page_unload()。如果不考虑具体的页面执行,我们可以看出,页面每次处理时,都要执行Page_Init、Page_load、page_unload事件。回到我们的主题,如要我们把dropdownlist 或其它的控件的初始化代码都放在某些方面page_load事件里面执行,那么意思就是每次页面刷新或被请求时控件都被重新初始化了。因此就有了控件的值永远都不会变的问题了。所以我们应该把初始化控件的代码放在:
if (!Page.IsPostBack){ //放在这里}。
说到这里,我想问题就说清楚了
yyang_kj 2003-08-21
  • 打赏
  • 举报
回复
哦,明白了。
但是我的格子里只有一个控件,为什么Controls[0].Text中的值始终是原先那个老值,而得不到我改动之后的那个值呢?

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧