读书人

用C#直接写Transaction的有关问题

发布时间: 2013-03-25 15:43:04 作者: rapoo

用C#直接写Transaction的问题
winform + sql2005


//以下是事务设置
SqlConnection Conn = dba.GetConn();
Conn.Open();
SqlTransaction sqlTrans = Conn.BeginTransaction();
SqlCommand sqlComm = Conn.CreateCommand();
sqlComm.Connection = Conn;
sqlComm.Transaction = sqlTrans;
try
{
for (int i = 0; i <arrayList.Count; i++)
{
string strID = arrayList[i].ToString();

sqlComm.CommandText = "Update Booktable set ID = '"+ strID +"' Where book_ID = '200'";
sqlComm.ExecuteNonQuery();
}

sqlTrans.Commit();
}


用上述事务语句直行循环更新字段
strID在循环里是不同的值(调试的时候可观测到)
但是Commit后发现数据库更新的数据都是最后一个arrayList[i]的值

请问这是怎么回事?
c# 数据库 sql
[解决办法]
Update Booktable set ID = '"+ strID +"' Where book_ID = '200'
每次执行都将ID更新为strID,最后当然是最后那个值了啊
[解决办法]
你只更新了book_ID = '200'的ID,看下你where后的条件。。。
[解决办法]
book_ID = '200'
你每次更新的都是这条记录啊。更新完了又更新一次。那肯定是最后一个数据保留了。

读书人网 >C#

热点推荐