1
我在.NET Framework 2.0中的C#代碼中使用的SqlTransaction時,有一個問題如何在sqltransaction中讀取未完成的事務?
這是我的代碼:
public bool register()
{
SqlConnection conn = DB.getInstance().getConnection();
conn.Open();
SqlTransaction sqlTransaction = conn.BeginTransaction();
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.Transaction = sqlTransaction;
try
{
cmd = insertMembers(cmd);
cmd.ExecuteNonQuery();
SqlDataReader read = null;
cmd.CommandText = "SELECT * FROM members WHERE username='" + username + "'";
read = cmd.ExecuteReader();
while (read.HasRows)
{
id0 = (int)read["id0"];
}
cmd = insertMembersBalance(cmd);
cmd.ExecuteNonQuery();
cmd = insertMembersEPoint(cmd);
cmd.ExecuteNonQuery();
cmd = insertMembersVerify(cmd);
cmd.ExecuteNonQuery();
reset();
sqlTransaction.Commit();
}
catch(Exception e)
{
sqlTransaction.Rollback();
Console.WriteLine(e.ToString());
return false;
}
finally
{
conn.Close();
}
return true;
}
我無法從成員表中的ID用於插入另一個記錄成另一張桌子。
有沒有其他解決方案?
「我無法從成員表中獲取的ID到另一個記錄用於插入到另一個表」。 - 爲什麼你不能? – 2012-08-15 16:38:41
我得到這個錯誤$例外\t {「當無數據存在時,無效嘗試閱讀。」} – kelvingo935 2012-08-15 16:41:46
請記住,您可以回答自己的問題,所以請在下面張貼並將其標記爲答案。 – HenryZhang 2012-08-15 17:23:08