怎样用sql语句更新数据库,而更新条件是临时表中的数据?急!

hjk1 2005-08-01 03:33:47
就是这样:update 表 set 列="......" where 列=(临时表数据)
可以实现吗?小弟要保存datagrid表格中的数据,临时表中的数据是在datagrid中修改过的。
急!分不够再加!
...全文
386 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
hjk1 2005-08-28
  • 打赏
  • 举报
回复
顶!
yoyo83 2005-08-28
  • 打赏
  • 举报
回复
用表变量可以实现。
hjk1 2005-08-01
  • 打赏
  • 举报
回复
楼上是什么代码呀?和我的要求不一样!
firecannon 2005-08-01
  • 打赏
  • 举报
回复
给你段源码,你参考一下:
使用的是access数据库,对datagrid中的数据编辑、修改、删除,并保存到数据库中。 private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
string MyconnString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath("/dg测试/bbs1.mdb");
Myconn=new OleDbConnection(MyconnString);
Myconn.Open();
if(!Page.IsPostBack)
{
BindGrid();
}
}

ICollection CreateTable()
{
string strSel="Select UserId,UserName,UserPass,UserAccount,UserQQ from Users";
DataSet ds=new DataSet();
OleDbDataAdapter MyAdapter=new OleDbDataAdapter(strSel,Myconn);
MyAdapter.Fill(ds,"table1");
return ds.Tables["table1"].DefaultView;
}
protected void BindGrid()
{
dgUser.DataSource=CreateTable();
dgUser.DataBind();
}


private void DataGrid_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
if(e.CommandName=="Delete")
{
string MyconnString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath("/dg测试/bbs1.mdb");
OleDbConnection conn=new OleDbConnection(MyconnString);
OleDbCommand comm=new OleDbCommand("delete from Users where UserId=@id",conn);
OleDbParameter parm1=new OleDbParameter("@id",OleDbType.VarChar);
parm1.Value=this.dgUser.DataKeys[e.Item.ItemIndex];
comm.Parameters.Add(parm1);
conn.Open();
comm.ExecuteNonQuery();
conn.Close();
BindGrid();
}
}

protected void DataGrid_EditCommand(Object sender,DataGridCommandEventArgs e)
{
dgUser.EditItemIndex=(int)e.Item.ItemIndex;
BindGrid();
}

protected void DataGrid_CancelCommand(Object sender,DataGridCommandEventArgs e)
{
dgUser.EditItemIndex=-1;
BindGrid();
}
protected void DataGrid_PageChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
this.dgUser.CurrentPageIndex=e.NewPageIndex;
BindGrid();
}
protected void DataGrid_UpdateCommand(Object sender,DataGridCommandEventArgs e)
{
string strName = e.Item.Cells[1].Text;
string strPass = ((TextBox)e.Item.Cells[2].Controls[0]).Text;
string strAccount =((TextBox)e.Item.Cells[3].Controls[0]).Text;
int intQQ = Int32.Parse(((TextBox)e.Item.Cells[4].Controls[0]).Text);
string strUpdate="Update Users set UserPass='"+ strPass +"',UserAccount='"+ strAccount +"',UserQQ='"+ intQQ +"' Where UserName='"+strName+"'";
OleDbCommand Mycomm=new OleDbCommand(strUpdate,Myconn);
try
{
Mycomm.ExecuteNonQuery();
Response.Write("成功操作数据库");
}
catch
{
Response.Write(Myconn.ConnectionString + "更新数据库失败....<BR>");
}
finally
{
Myconn.Close();
}

dgUser.EditItemIndex=-1;
BindGrid();
}


#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.dgUser.EditCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid_EditCommand);
this.dgUser.DeleteCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid_ItemCommand);
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion
}
}
hjk1 2005-08-01
  • 打赏
  • 举报
回复
这是临时表,也就是只存在于内存中的表,也就是datatable,该怎样做?高手帮忙呀!
lovefootball 2005-08-01
  • 打赏
  • 举报
回复
update 表 set 列="......" where 列 in (select column from 临时表 where 条件)


athossmth 2005-08-01
  • 打赏
  • 举报
回复
不要用临时表,用dataset

110,535

社区成员

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

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

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