MySQLテーブルを作成し、Monoでデータを入力する必要があります。私はそうするために、次のコードを使用しています:MySQLでトランザクションオブジェクトを使用する必要があります
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;
}
}
私はIDbTransaction
が使用されているモノでMySQLを操作する方法の多くの例を見てきました。上のコードは、トランザクションオブジェクトを一切使わずに動作します。私は本当に自分のコードにトランザクションオブジェクト(とIDbTransaction.Commit
)を使用する必要がありますか?
このような初心者の質問には申し訳ありません。私は主にC++/PHP開発者であり、C#とMonoの経験はほとんどありません。
ファイナライザが悪いなどです –
ラップIDisposableをオブジェクトブロック「を使用して」にファイナライザは、既に述べたように、ここでは悪い考えです。 – skolima
ありがとう、@スカリマ。なぜそれが悪いのか分かりました。また、 'TestModel'オブジェクトがまだ削除されていない間、データベースへの永続的な接続を維持する必要がありますか?特定のデータベースクエリ/トランザクションで 'Open'と' Close'接続を行うほうが良いでしょうか? – ezpresso