بسم الله الرحمن الرحيم
السلام عليكم ورحمن الله وبركاته،
انا استخدم c#
اريد تحسن برنامجي ... حاليا، البرنامج يحتوي على الاتي:
functionA يستدعيى functionB و functionC و functionD
functionB يعمل open لقاعده البيانات ويعمل insert ثم يعمل close
functionC يعمل open لقاعده البيانات ويعمل query ثم يعمل close
functionD يعمل open لقاعده البيانات ويعمل update ثم يعمل close
اريد اعاده كتب الكود لسببين اساسيين:
1. لعمل transaction control
2. اريد تنظيف الكود بحيث ان اخفف من كثره تكرار نفس الكود (open لقاعدة البيانات)
فالذي اريده هو ان اجعل functionA يعمل عملية الـopen لقاعدة البيانات، ثم يستدعي functionB لعمل الـinsert ، ثم يستدعي functionC لعمل الـquery ، ثم يستدعي functionD لعمل الـupdate واخيرا يعمل commit لهذه العمليات (وان لم تنجح فيعمل rollback)
كود functionB:
// Connect to a Microsoft Access database using the // System.Data.OleDb.OleDbConnection class string strOleDb; strOleDb = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+myPath; OleDbConnection cn = new OleDbConnection(strOleDb); OleDbCommand myCom = new OleDbCommand(); myCom.Connection = cn; cn.Open(); myCom.CommandText = "Insert Into ..."; myCom.ExecuteNonQuery(); cn.Close();
كود functionC:
// Connect to a Microsoft Access database using the
// System.Data.OleDb.OleDbConnection class
string strOleDb;
strOleDb = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+myPath;
OleDbConnection cnOleDb = new OleDbConnection();
cnOleDb.ConnectionString = strOleDb;
// Create a OleDbDataReader object
OleDbDataReader dr;
// Create a new OleDbCommand object
OleDbCommand cmd = new OleDbCommand();
// Set the Select statement in the CommandText property and
// set the Connection property to the "cn" OleDbConnection object
// just created
cmd.CommandText =@"SELECT ...";
cmd.Connection = cnOleDb;
// Open the Connection
cnOleDb.Open();
// Call the ExecuteReader method of the Command object
dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
while (dr.Read())
{
//do stuff
}//end while
// Close the Connection object
cnOleDb.Close();كود functionD:
// Connect to a Microsoft Access database using the // System.Data.OleDb.OleDbConnection class string strOleDb; strOleDb = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+myPath; OleDbConnection cn = new OleDbConnection(strOleDb); OleDbCommand myCom = new OleDbCommand(); myCom.Connection = cn; cn.Open(); myCom.CommandText = "Update ..."; myCom.ExecuteNonQuery(); cn.Close();
كيف اعمل هذا الشئ؟
شكرا و -waf