我需要創建一個MySQL表並在Mono中填充一些數據。我使用下面的代碼可以這樣做:我是否需要在MySQL中使用Transaction對象
public class TestModel
{
protected IDbConnection dbcon;
public TestModel()
{
string connectionString = "Server=localhost;"
+ "Database=cikdata;"
+ "User ID=root;"
+ "Password=password;"
+ "Pooling=false";
dbcon = new MySqlConnection(connectionString);
dbcon.Open();
IDbCommand dbcmd = dbcon.CreateCommand();
// Create table
dbcmd.CommandText = "CREATE TABLE employee (firstname varchar(32), lastname varchar(32))";
dbcmd.ExecuteScalar();
// fill this table with some data
dbcmd.CommandText = "SELECT firstname, lastname FROM employee";
IDataReader reader = dbcmd.ExecuteReader();
while(reader.Read()) {
string FirstName = (string) reader["firstname"];
string LastName = (string) reader["lastname"];
Console.WriteLine("Name: " + FirstName + " " + LastName);
}
// clean up
reader.Close();
reader = null;
dbcmd.Dispose();
dbcmd = null;
}
~TestModel()
{
dbcon.Close();
dbcon = null;
}
}
我已經看到了如何使用MySQL在單在使用IDbTransaction
工作的例子很多。上面的代碼沒有任何事務對象。我真的需要在我的代碼中使用交易對象(和IDbTransaction.Commit
)嗎?
對不起,問這樣一個新手問題。我主要是一名C++/PHP開發人員,而且我對C#和Mono很少有經驗。
終結不好等 –
裹IDisposable的對象「使用」塊,正如已經說過的,終結者在這裏是一個糟糕的主意。 – skolima
謝謝@skolima。我已經意識到它爲什麼如此糟糕。另外,當'TestModel'對象還沒有被刪除時,我是否需要維護與數據庫的持久連接?對於特定的數據庫查詢/事務,「打開」和「關閉」連接可能更好? – ezpresso