标题:DateGrid中模版列TextBox数据加不进去
只看楼主
bygg
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:乖乖的心中
等 级:版主
威 望:241
帖 子:13555
专家分:3076
注 册:2006-10-23
得分:0 
你要添加的话,也得写 insert into ..这样的语句啊..你那是写的修改语句.

飘过~~
2007-05-28 10:41
GrimFish
Rank: 1
等 级:新手上路
威 望:1
帖 子:167
专家分:0
注 册:2007-5-28
得分:0 

批量更新吗?

看样子学号应该是唯一值
设置为DATAKEY
如果做批量更新这样用
protected void Button1_Click(object sender, EventArgs e)
{
foreach (DataGridItem i in DataGrid1.Items)
{
TextBox txt = (TextBox)i.FindControl("TextBox2");
string text = txt.Text.ToString();
string strDelId = DataGrid1.DataKeys[i.RowIndex].Value.ToString();
if (txt.Text == null)
{
Response.Write("<script defer>alert('不能为空!');</script>");
}
else
{
string str_mark = "update lab_students set mark='" + text + "' where user_ID='" + strDelId + "'";
co_m.ENQ(str_mark);
Response.Write("<script defer>alert('输入成功!');</script>");
}
}

}

你试了看看吧,我不太记得datagrid的方法了,用2005习惯了,如果出错在贴出来

2007-05-28 10:42
yunj1105
Rank: 1
等 级:新手上路
威 望:1
帖 子:757
专家分:0
注 册:2007-2-13
得分:0 
bygg:那insert不就把user_ID dept_ID major_ID也插入了吧?这些项数据库表里已经有了


GrimFish:string strDelId = DataGrid1.DataKeys[Item.RowIndex].Value.ToString();
红色部分应该这样写吗? Cell[1]

2007-05-28 11:02
GrimFish
Rank: 1
等 级:新手上路
威 望:1
帖 子:167
专家分:0
注 册:2007-5-28
得分:0 
不好意思,写成GridView的了。。。应该是

string strDelId = DataGrid1.DataKeys[i.ItemIndex].Value.ToString();


把下面放到你BUTTON的CLICK事件里看看
foreach (DataGridItem i in DataGrid1.Items)
{
TextBox txt = (TextBox)i.FindControl("TextBox2");
string text = txt.Text.ToString();
strstring strDelId = DataGrid1.DataKeys[i.ItemIndex].Value.ToString(); if (txt.Text == null)
{
Response.Write("<script defer>alert('不能为空!');</script>");
}
else
{
string str_mark = "update lab_students set mark='" + text + "' where user_ID='" + strDelId + "'";
co_m.ENQ(str_mark);
Response.Write("<script defer>alert('输入成功!');</script>");
}
}
2007-05-28 11:10
GrimFish
Rank: 1
等 级:新手上路
威 望:1
帖 子:167
专家分:0
注 册:2007-5-28
得分:0 
以下是引用yunj1105在2007-5-28 11:02:08的发言:
GrimFish:string strDelId = DataGrid1.DataKeys[Item.RowIndex].Value.ToString();
红色部分应该这样写吗? Cell[1]

为什么你老是想这样写呢,Cells[1]这已经把行的索引给固定了,而且更新根本就是错误的,只是行的索引,用来作为更新的条件,怎么可能是对的呢。

你该设置一个DataKey,在页面设计的DataGrid上右键,属性,找到DataKey,然后设置为学号,我这里设想学号是唯一值,把他当做主键吧。

你1楼的语法是正确的,仔细看了一下没有什么错误,但是没有更新是因为你的条件根本不成立,自然就不能更新数据。

那么只能借助DataKey来做为条件,用foreach来迭代,进行重复的UPDATE更新。

如果你固定了行。那么只是更新其中一行,其他的忽略,这样foreach还有意义么?

2007-05-28 11:21
yunj1105
Rank: 1
等 级:新手上路
威 望:1
帖 子:757
专家分:0
注 册:2007-2-13
得分:0 

呵呵 搞定了 谢谢哦


2007-05-28 15:55
sdlklhd
Rank: 1
等 级:新手上路
威 望:2
帖 子:345
专家分:0
注 册:2005-12-20
得分:0 

2007-05-29 07:47



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-142887-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.702519 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved