求一批量更新的sql语句
一页列出N个产品,每条产品记录中价格是显示在文本框里面,每条产品记录前有一个复选框。用户可以勾选某些产品,然后在对应的文本框里更改这些产品价格数字,点击“更新价格”按钮提交后,勾选的产品价格一次性全部更改完毕。
产品表名是production,价格字段是price,产品用id区分,请教了。
问题点数:0、回复次数:7Top
1 楼dicklee1214(令狐冲)回复于 2005-06-01 18:01:37 得分 0
存储过程——for循环——循环中updateTop
2 楼huwei2003(凡)回复于 2005-06-01 18:10:45 得分 0
foreach(DataGridItem iItem in DataGrid1.Items)
{
if(iItem.ItemType==ListItemType.AlternatingItem || iItem.ItemType==ListItemType.Item)
{
if(((CheckBox)iItem.FindControl("chkSelect")).Checked)
{
SqlParameter[] p =
{
SqlHelper.MakeInParam("@ordercase",SqlDbType.Int,4,1),
SqlHelper.MakeInParam("@blogid",SqlDbType.Int,4,DataGrid1.DataKeys[(int)iItem.ItemIndex]),
};
DbProvider.Instance().ExecuteScalar("SP_DeleteBlog_logout",p);
}
}
}Top
3 楼50277(柳影随风)回复于 2005-06-01 21:22:30 得分 0
SqlDataAdapter sdaFirst=new SqlDataAdapter ("select * from MyTable where 1=2",conn);
DataSet ds=new DataSet ();
sdaFirst.Fill (ds,"MyTable");
//将数据放入到DataTable当中
for(int i=0;i<10;i++)
{
DataRow dr=ds.Tables["MyTable"].NewRow();
dr["My_ID"]=i+100;
dr["My_Name"]=i.ToString()+"100";
ds.Tables["MyTable"].Rows.Add(dr);
}
//将DataTable当中的数据更新回数据库
// SqlCommandBuilder scd=new SqlCommandBuilder(sdaFirst);
SqlCommand cmd=new SqlCommand("insert into MyTable values(@My_ID,@My_Name)",conn);
SqlDataAdapter sdaForInsert=new SqlDataAdapter();
SqlParameter p1 = new SqlParameter("@My_ID", SqlDbType.Int,4);
p1.SourceVersion = DataRowVersion.Current;
p1.SourceColumn = "My_ID"; // or p1.SourceColumn = Dt.Columns[0].ColumnName;
cmd.Parameters.Add(p1);
SqlParameter p2 = new SqlParameter("@My_Name", SqlDbType.VarChar,10);
p2.SourceVersion = DataRowVersion.Current;
p2.SourceColumn = "My_Name"; // or p1.SourceColumn = Dt.Columns[0].ColumnName;
cmd.Parameters.Add(p2);
sdaForInsert.InsertCommand=cmd;
sdaForInsert.Update(ds.Tables["MyTable"]);
conn.Close();Top
4 楼ok61()回复于 2005-06-02 08:53:48 得分 0
有位朋友提出了一个简单的方法,基本可用,只是Request.Form("Price" & mm)取不出用户填写的价格,我把修改过的代码贴出来看看有什么问题:
HTML
<input type=checkbox name="mm" value=<%=rsgrid("id")%>>
<input type=input name="price" value=<%=rsgrid("price")%>>
=========================================================================
ASP
arrProdID = Split(Request.Form("mm"), ",")
mm=Request.Form("mm")
For Each mm in arrProdID
strSQL = "Update production set price = '" & Request.Form("Price" & mm) & "' Where id = '" & mm & "'"
conn.execute strSQL
Next
Top
5 楼renyu732(Sysinfo)回复于 2005-06-02 10:16:20 得分 0
upTop
6 楼ok61()回复于 2005-06-02 14:24:43 得分 0
问题继续请教中……Top
7 楼ok61()回复于 2005-06-02 15:55:56 得分 0
有懂的朋友冒个泡。。。Top




