以前我更新数据库中一条记录的时候,先查出对应的数据处理后再更新,比如给一个用户加分Query()
{
select score frome user
update(score + 1);
}
update(score)
{
update user set score = score
}
//竟没想到可以这样
update user set score = score + 1
然后我又想到了以前已经习惯用的多次数据库操作,比如在一个表里插入一条数据,同时要更新另一个表里的数据insert()
{
insert into table1(a) Values(1)
update();
}
update()
{
update table2 set c = 2
}
//当然,这样做可能会有第一条数据插入成功,但第条数据没更新成功的可能,但是这样只建一次连接,执行两条语句,效率是不是可以高点,但不知高了多少我的问题出来了,这样做各有什么利弊呢
{
select score frome user
update(score + 1);
}
update(score)
{
update user set score = score
}
//竟没想到可以这样
update user set score = score + 1
然后我又想到了以前已经习惯用的多次数据库操作,比如在一个表里插入一条数据,同时要更新另一个表里的数据insert()
{
insert into table1(a) Values(1)
update();
}
update()
{
update table2 set c = 2
}
//当然,这样做可能会有第一条数据插入成功,但第条数据没更新成功的可能,但是这样只建一次连接,执行两条语句,效率是不是可以高点,但不知高了多少我的问题出来了,这样做各有什么利弊呢
解决方案 »
- asp.net怎么用jquery $.post进行数据库查询,并且返回一个 List<自定义类> 在客户端如何接收结果?
- 关于将datagrid中的数据保存到excel的问题
- FormView绑定数据后只能显示一行,真是奇怪?
- sql 2000全文索引不能搜索全角符号吗?
- 马上给分,请教高手::DataGrid的小问题。有通用性的。
- ASP.NET发布到网站上出现问
- 如何正确使用?请问错误在哪里?请高手指教了!谢谢!!在线给分。
- telerik kendo-ui for MVC: Grid Destroy() 出错
- 按扭外观的问题
- SQL多表查询问题.
- 高分求aspx新手练习题
- 谁用过科迈自己建过网站
{
insert into table1(a) Values(1)
update();
update()
{
update table2 set c = 2
}
//想到可以这样做
codeinsert()
{
string strSql = "insert into table1(a) Values(1);update table2 set c = 2;"
}
//不知有没有说明白我想说的,呵呵//当然,这样做可能会有第一条数据插入成功,但第条数据没更新成功的可能,但是这样只建一次连接,执行两条语句,效率是不是可以高点,但不知高了多少
or
触发器
or
接分
{
OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OleDb.4.0;Data Source=C:/Inetpub/wwwroot/DotNetArticle/App_Data/DotNetArticle.mdb");
con.Open();
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = con;
cmd.Transaction = con.BeginTransaction();
try
{
string sql1 = "insert into teaminfo (num,username,isplay) values(1,'a',1)";
string sql2 = "insert into teaminfo (num,username,isplay) values(2,'b',1)";
string sql3 = "insert into teaminfo (num,username,isplay) values(3,'c',1)";
string[] SQLStringList = { sql1, sql2, sql3 };
for (int n = 0; n < SQLStringList.Length; n++)
{
string strsql = SQLStringList[n].ToString();
if (strsql.Trim().Length > 1)
{
cmd.CommandText = strsql;
cmd.ExecuteNonQuery();
}
}
cmd.Transaction.Commit(); //提交事务
}
catch (Exception)
{
cmd.Transaction.Rollback();
}
finally
{
con.Close();
}
}
string sql = "insert into teaminfo (num,username,isplay) values(1,'a',1);insert into teaminfo (num,username,isplay) values(2,'b',1);insert into teaminfo (num,username,isplay) values(3,'c',1)"
一次插入多条数据
{
insert into table1(a) Values(1)
update();
}
update()
{
update table2 set c = 2
}
建议楼主用事务,要不然看上面的那个inert语句执行成功,下面开始执行的update语句要是失败的话,你上面插入的数据就是没有用的数据
结贴,祝大家周末愉快