SqlDataSource1.UpdateParameters语句要写在什么方法里?

尔东主机 2012-05-04 01:11:19
以下语句要写在什么方法里?
DropDownList ddl = (DropDownList)GridView1.Rows[GridView1.EditIndex].FindControl("ddlPianqu");
SqlDataSource1.UpdateParameters["pianquid"].DefaultValue = ddl.SelectedValue;
SqlDataSource1.Update();

GridView1_RowUpdating?

请不吝赐教!
...全文
190 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
尔东主机 2012-05-04
  • 打赏
  • 举报
回复
我现在又写了以下代码:

protected void ddlPianqu_OnSelectedIndexChanged(object sender, EventArgs e)
{
DropDownList ddl;
for (int i = 0; i < GridView1.Rows.Count - 1; i++)
{
ddl = (DropDownList)GridView1.Rows[i].FindControl("ddlPianqu");
//SqlDataSource1.UpdateParameters["salesman"].DefaultValue = ((Label)(GridView1.Rows[i].FindControl("lblSalesman"))).Text;
//SqlDataSource1.UpdateParameters["id"].DefaultValue = ddl.SelectedValue;
SqlDataSource1.UpdateParameters["pianquid"].DefaultValue = ddl.SelectedValue;
SqlDataSource1.Update();
}
}

还是修改不了下拉框的那个字段的值。
似乎不能用循环,但是ddlPianqu_OnSelectedIndexChanged()中怎么获取GridView1当前正在编辑的这一行的index值呢?
尔东主机 2012-05-04
  • 打赏
  • 举报
回复
楼上的代码似乎没起作用?
尔东主机 2012-05-04
  • 打赏
  • 举报
回复
设置了,
我现在重新配置SqlDataSource1,去掉了“高级”里的旧值模式,5楼的问题算是解决了,
我现在把

for (int i = 0; i < GridView1.Rows.Count -1; i++)
{
ddl = (DropDownList)GridView1.Rows[i].FindControl("ddlPianqu");
SqlDataSource1.UpdateParameters["pianquid"].DefaultValue = ((Label)(GridView1.Rows[i].FindControl("lblPianqu"))).Text;
SqlDataSource1.Update();
}
写在GridView1_RowDataBound中,
结果没出错,但是下拉框的那个字段的值修改完还是旧值
test2050 2012-05-04
  • 打赏
  • 举报
回复
SqlDataSource1是什么来的? 给GridView1.DataSource赋值了没
尔东主机 2012-05-04
  • 打赏
  • 举报
回复
我的几本VS 2005的书都没有这个问题的答案,又不想再花钱买书了,MSDN也语焉不详。。。
搞.net真累!
尔东主机 2012-05-04
  • 打赏
  • 举报
回复
我把这些语句写入到GridView1的绑定事件中,
      
for (int i = 0; i < GridView1.Rows.Count; i++)
{
ddl = (DropDownList)GridView1.Rows[i].FindControl("ddlPianqu");
SqlDataSource1.UpdateParameters["salesman"].DefaultValue = ((Label)(GridView1.Rows[i].FindControl("lblSalesman"))).Text;
SqlDataSource1.UpdateParameters["original_id"].DefaultValue = ;
SqlDataSource1.UpdateParameters["original_salesman"].DefaultValue = ;
SqlDataSource1.UpdateParameters["pianquid"].DefaultValue = ((Label)(GridView1.Rows[i].FindControl("lblPianqu"))).Text;
SqlDataSource1.Update();
}

执行时出现错误:
您已指定 更新 命令比较 SqlDataSource“SqlDataSource1”的所有值,但为 oldValues 传入的字典是空的。请为 更新 传入有效的字典或将模式更改为 OverwriteChanges

如何从oldvalues集合中获得旧值呢?代码?
尔东主机 2012-05-04
  • 打赏
  • 举报
回复
孟老大,谢谢!但上面这两条里没有我想要的代码。
还没命中GridView1_RowUpdating的断点就报SQL语句出错
感觉就是因为没来执行
SqlDataSource1.UpdateParameters["pianquid"].DefaultValue = ddl.SelectedValue;
SqlDataSource1.Update();
才会出现这个错误,
但无论我是把它写在GridView1_RowUpdating还是GridView1_RowEditing都还没被执行就出现错误了,要写在哪里才行?
孟子E章 2012-05-04
  • 打赏
  • 举报
回复
使用方法
http://msdn.microsoft.com/zh-cn/library/system.web.ui.webcontrols.gridview.rowupdating.aspx
http://msdn.microsoft.com/zh-cn/library/system.web.ui.webcontrols.sqldatasource.updateparameters.aspx

尔东主机 2012-05-04
  • 打赏
  • 举报
回复
谢谢楼上,能不能说具体一点?
bdmh 2012-05-04
  • 打赏
  • 举报
回复
需要获得参数集合时用

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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