请教两个关于C#中使用数据库的问题~~~
1.定义了一个Product表,该表中的记录有一个State属性,利用该属性的不同值判断Product的状态。该表中存储的数据量比较大,两种不同状态记录数基本相同。我需要在C#中使用这个数据库,请问直接执行
SqlCommand sqlComm=...
string strSQL="Select * From Product Where State=State1 And Product_Id=xxx"
sqlComm.ExecuteNonQuery(strSQL)
和将这两种状态拆成ProductState1和ProductState2两个各自保存不同状态的记录的表,然后执行
if (sTableName=="ProductState1")
strSQL="Select * From Product Where Product_Id=xxx"
else if (sTableName=="ProductState2")
strSQL="Select * From Product Where Product_Id=xxx"
sqlComm.ExecuteNonQuery(strSQL)
这两种方法那个更好一些?(主要是效率、可靠性和安全性三个方面)
2.在B/S结构应用程序中,下面的事务是否安全?
事务T1开始
向表1添加一条记录(Insert 表1 Values ...)
取得刚刚添加记录的主键ID1(Select ...)
向表2添加一条记录(Insert 表2...)
取得刚刚添加记录的主键ID2(Select...)
将ID1,ID2添加进表3(Insert 表3..)
Commit事务
如果出错RollBack事务~~
请问在B/S结构的应用程序中事务T1安全吗?