PDA

View Full Version : حرفه ای: حذف database اتچ شده با کد سی شارپ



kamiloted
چهارشنبه 21 مهر 1395, 14:35 عصر
سلام دوستان.

یه سورس کد میخوام که رو سیستم مقصد نصب کنم و لیست بانک ها رو مشاهده و آنها رو حذف کنم.

ScienceLover
چهارشنبه 21 مهر 1395, 16:07 عصر
سورس کد زیر مثالی از database qury در زبان C#‎‎‎ است:


//Reading Table Database.
int[,] ReadTable(int Movment, ref int MoveNumber)

{
int[,] Tab = Table;
int Move = 0;
AllDraw.TableListAction.Clear();
do
{
try
{
String connParam = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + System.IO.Path.GetDirectoryName(Environment.GetCom mandLineArgs()[0]) + "\\" + "Database\\CurrentBank.accdb;Persist Security Info=true;Jet OLEDB:Database Password=''";
bookConn = new OleDbConnection(connParam);
bookConn.Open();
oleDbCmd.Connection = bookConn;
String TableName = Move.ToString();
String Zero = "Table";
for (int i = 0; i < 8 - TableName.Length; i++)
Zero += "0";
TableName = Zero + TableName;

oleDbCmd.CommandText = "Select * From " + TableName;
OleDbDataReader dr = null;
dr = oleDbCmd.ExecuteReader();
int ii = 0;
while (dr.Read())
{
Tab[0, ii] = System.Convert.ToInt32(dr["a"]);
Tab[1, ii] = System.Convert.ToInt32(dr["b"]);
Tab[2, ii] = System.Convert.ToInt32(dr["c"]);
Tab[3, ii] = System.Convert.ToInt32(dr["d"]);
Tab[4, ii] = System.Convert.ToInt32(dr["e"]);
Tab[5, ii] = System.Convert.ToInt32(dr["f"]);
Tab[6, ii] = System.Convert.ToInt32(dr["g"]);
Tab[7, ii] = System.Convert.ToInt32(dr["h"]);
ii++;
}
int[,] TableA = new int[8, 8];
for (int i = 0; i < 8; i++)
for (int j = 0; j < 8; j++)
TableA[i, j] = Tab[i, j];
Draw.TableList.Clear();
Draw.TableList.Add(TableA);
Draw.SetRowColumn(0);
AllDraw.TableListAction.Add(TableA);
if (AllDraw.TableListAction.Count > 1)
{
ChessGeneticAlgorithm R = new ChessGeneticAlgorithm();
if (R.FindGenToModified(AllDraw.TableListAction[AllDraw.TableListAction.Count - 2], AllDraw.TableListAction[AllDraw.TableListAction.Count - 1], AllDraw.TableListAction, 0, OrderPlate, true))
{
bool HitVal = false;
int Hit = AllDraw.TableListAction[AllDraw.TableListAction.Count - 2][R.CromosomRow, R.CromosomColumn];
if (Hit != 0)
HitVal = true;
bool Convert = false;
if (OrderPlate == 1)
{
if (AllDraw.TableListAction[AllDraw.TableListAction.Count - 1][R.CromosomRow, R.CromosomColumn] == 1)
{
if (R.CromosomColumn == 7)
Convert = true;
}
AllDraw.SyntaxToWrite = ChessRules.CreateStatistic(TableA, MoveNumber + 1, AllDraw.TableListAction[AllDraw.TableListAction.Count - 2][R.CromosomRowFirst, R.CromosomColumnFirst], R.CromosomColumn, R.CromosomRow, HitVal, Hit, ChessRules.BridgeActGray, Convert);
}
else
{
if (AllDraw.TableListAction[AllDraw.TableListAction.Count - 1][R.CromosomRowFirst, R.CromosomColumnFirst] == -1)
{
if (R.CromosomColumn == 0)
Convert = true;
}
AllDraw.SyntaxToWrite = ChessRules.CreateStatistic(TableA, MoveNumber + 1, AllDraw.TableListAction[AllDraw.TableListAction.Count - 2][R.CromosomRowFirst, R.CromosomColumnFirst], R.CromosomColumn, R.CromosomRow, HitVal, Hit, ChessRules.BridgeActBrown, Convert);
}
SetBoxStatistic(AllDraw.SyntaxToWrite);
RefreshBoxStatistic();
}
}


bookConn.Close();
oleDbCmd.Dispose();
bookConn.Dispose();
Move++;
if (Move > 1)
MoveNumber++;
for (int i = 0; i < 8; i++)
for (int j = 0; j < 8; j++)
TableA[i, j] = Tab[i, j];


if ((new ChessRules(1, TableA, OrderPlate).Mate(TableA, OrderPlate)))
{
int iii = 0;
do { iii++; } while (System.IO.File.Exists("Database\\Games\\CurrentBank" + iii.ToString() + ".accdb"));
System.IO.File.Copy("Database\\CurrentBank.accdb", "Database\\Games\\CurrentBank" + iii.ToString() + ".accdb");
System.IO.File.Delete("Database\\CurrentBank.accdb");
break;

}
}
catch (Exception t)
{
Log(t);
try
{
bookConn.Close();
oleDbCmd.Dispose();
bookConn.Dispose();

Move++;

String connParam = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + System.IO.Path.GetDirectoryName(Environment.GetCom mandLineArgs()[0]) + "\\" + "Database\\CurrentBank.accdb;Persist Security Info=true;Jet OLEDB:Database Password=''";
bookConn = new OleDbConnection(connParam);
bookConn.Open();
oleDbCmd.Connection = bookConn;
String TableName = (Move).ToString();
String Zero = "Table";
for (int i = 0; i < 8 - TableName.Length; i++)
Zero += "0";
TableName = Zero + TableName;

oleDbCmd.CommandText = "Select * From " + TableName;
OleDbDataReader dr = null;
dr = oleDbCmd.ExecuteReader();
int ii = 0;
while (dr.Read())
{
Tab[0, ii] = System.Convert.ToInt32(dr["a"]);
Tab[1, ii] = System.Convert.ToInt32(dr["b"]);
Tab[2, ii] = System.Convert.ToInt32(dr["c"]);
Tab[3, ii] = System.Convert.ToInt32(dr["d"]);
Tab[4, ii] = System.Convert.ToInt32(dr["e"]);
Tab[5, ii] = System.Convert.ToInt32(dr["f"]);
Tab[6, ii] = System.Convert.ToInt32(dr["g"]);
Tab[7, ii] = System.Convert.ToInt32(dr["h"]);
ii++;
}
int[,] TableA = new int[8, 8];
for (int i = 0; i < 8; i++)
for (int j = 0; j < 8; j++)
TableA[i, j] = Tab[i, j];

Draw.TableList.Clear();
Draw.TableList.Add(TableA);
Draw.SetRowColumn(0);
AllDraw.TableListAction.Add(TableA);
if (AllDraw.TableListAction.Count > 1)
{
ChessGeneticAlgorithm R = new ChessGeneticAlgorithm();
if (R.FindGenToModified(AllDraw.TableListAction[AllDraw.TableListAction.Count - 2], AllDraw.TableListAction[AllDraw.TableListAction.Count - 1], AllDraw.TableListAction, 0, OrderPlate, true))
{
bool HitVal = false;
int Hit = AllDraw.TableListAction[AllDraw.TableListAction.Count - 2][R.CromosomRow, R.CromosomColumn];
if (Hit != 0)
HitVal = true;
bool Convert = false;
if (OrderPlate == 1)
{
if (AllDraw.TableListAction[AllDraw.TableListAction.Count - 1][R.CromosomRow, R.CromosomColumn] == 1)
{
if (R.CromosomColumn == 7)
Convert = true;
}
AllDraw.SyntaxToWrite = ChessRules.CreateStatistic(TableA, MoveNumber + 1, AllDraw.TableListAction[AllDraw.TableListAction.Count - 2][R.CromosomRowFirst, R.CromosomColumnFirst], R.CromosomColumn, R.CromosomRow, HitVal, Hit, ChessRules.BridgeActGray, Convert);
}
else
{
if (AllDraw.TableListAction[AllDraw.TableListAction.Count - 2][R.CromosomRowFirst, R.CromosomColumnFirst] == -1)
{
if (R.CromosomColumn == 0)
Convert = true;
}
AllDraw.SyntaxToWrite = ChessRules.CreateStatistic(TableA, MoveNumber, AllDraw.TableListAction[AllDraw.TableListAction.Count - 2][R.CromosomRowFirst, R.CromosomColumnFirst], R.CromosomColumn, R.CromosomRow, HitVal, Hit, ChessRules.BridgeActBrown, Convert);
}
SetBoxStatistic(AllDraw.SyntaxToWrite);
RefreshBoxStatistic();
}
}

bookConn.Close();
oleDbCmd.Dispose();
bookConn.Dispose();
for (int i = 0; i < 8; i++)
for (int j = 0; j < 8; j++)
TableA[i, j] = Tab[i, j];


if ((new ChessRules(1, TableA, OrderPlate).Mate(TableA, OrderPlate)))
{
int iii = 0;
do { iii++; } while (System.IO.File.Exists("Database\\Games\\CurrentBank" + iii.ToString() + ".accdb"));
System.IO.File.Copy("Database\\CurrentBank.accdb", "Database\\Games\\CurrentBank" + iii.ToString() + ".accdb");
System.IO.File.Delete("Database\\CurrentBank.accdb");
break;

}

}
catch (Exception tt)
{
Log(tt);
bookConn.Close();
oleDbCmd.Dispose();
bookConn.Dispose();
break;
}
}
if (Move > 1)
{
OrderPlate *= -1;
ChessRules.CurrentOrder = OrderPlate;
}
} while (true);
return Tab;
}

kamiloted
چهارشنبه 21 مهر 1395, 20:25 عصر
دوستان من یه فرم به این صورت که مال ویژوال هست میخوام.
اما به جای اتچ حذف داشته باشه.بتونیم حذف کنیم بانک رو .
یعنی بانک از اس کیوال سرور یا اکسپرس حذف بشه.
142986

سپاس

ScienceLover
پنج شنبه 22 مهر 1395, 11:50 صبح
برای حذف یک جدول از کد زیر استفاده کنید:




oleDbCmd.CommandText = "Drop Table Configuration";

ScienceLover
پنج شنبه 22 مهر 1395, 11:54 صبح
شما در ویژوال فقط conString و بانک رو ایجاد می کنید بقیه برنامه نویسی است!:لبخند:

kamiloted
پنج شنبه 22 مهر 1395, 18:34 عصر
شما در ویژوال فقط conString و بانک رو ایجاد می کنید بقیه برنامه نویسی است!:لبخند:

دوست عزیز ممنون.شما متوجه نشدید به گمونم.
من همون فرمی که بالا عکسش رو نشونتون دادم میخوام با سی شارپ کد نویسی کنم.
و یه قابلیت بهش اضافه کنم که بانک انتخابی رو از سرور حذف کنم.
ممنون

mr.sirwan
پنج شنبه 22 مهر 1395, 21:54 عصر
دوست عزیز ممنون.شما متوجه نشدید به گمونم.
من همون فرمی که بالا عکسش رو نشونتون دادم میخوام با سی شارپ کد نویسی کنم.
و یه قابلیت بهش اضافه کنم که بانک انتخابی رو از سرور حذف کنم.
ممنون

خب دوست عزیز این به حلاقیت شما برمیگرده دیگه، ما دو دستور اساسی اینکار رو بهتون گفتیم، یکیش واکشی اسم دیتابیس ها بود و اونیکی هم نحوه حذف یک دیتابیس، فقط میمونه شما یه کمبو باکس بذاری و نام دیتابیس هارو بذاری توش.... این دیگه به شما برمیگرده، فک نکنم کار آنچنان سختی باشه که یه هفته س منتظرین یکی بیاد و براتون پروژه رو ایجاد کنه و بهتون بده

موفق باشین

kamiloted
پنج شنبه 22 مهر 1395, 22:09 عصر
دوست عزیز من برا سرور و لیست دیتابیس رو نوشتم.
اما دستور دلیت رو نه.
142988
حالا یه دستور دلیت دیتابیس همون Drop با سی شارپ میخوام همین.

mr.sirwan
پنج شنبه 22 مهر 1395, 23:42 عصر
دوست عزیز من برا سرور و لیست دیتابیس رو نوشتم.
اما دستور دلیت رو نه.
142988
حالا یه دستور دلیت دیتابیس همون Drop با سی شارپ میخوام همین.

خب دیگه، حالا شد یه چیزی، شما کد زیر رو در ایونت کلیک یک دکمه بنویس:

String ConnectionString = @"Persist Security Info=False;Initial Catalog=master;Data Source=.;";

SqlConnection oConnection = new SqlConnection(ConnectionString);
SqlCommand oCommand = new SqlCommand();

try
{
oConnection.Open();
oCommand.Connection = oConnection;

oCommand.CommandType = CommandType.Text;
oCommand.CommandText = String.Format("Drop Database {0}", comboBox1.SelectedItem.ToString());
oCommand.ExecuteNonQuery();

MessageBox.Show("دیتابیس موردنظر با موفقیت حذف شد.");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
if (oConnection.State != ConnectionState.Closed)
{
oConnection.Close();
}
}


فقط حواستون باشه که دیتابیس های پیشفرض رو حذف نکنین و اینکه ما از دیتابیس پیشفرض master برای کانکشن استرینگمون استفاده کردیم