PDA

View Full Version : سوال: اضافه کردن جدول با نام دلخواه به اکسس از طریق سی شارپ



09178525592
دوشنبه 27 آذر 1391, 18:31 عصر
با عرض سلام و خسته نباشید.

من میخوام توی برنامم به استفاده کننده یه قابلیتی بدم که بتونه خودش از طریق برنامه یه جدول با نام دلخواه(البته فیلد ها یکسان باشند و فقط هر وقت استفاده کننده خواست یه جدول بسازه با همون فیلد های تعریف شده و مشخص)در دیتابیس اکسس ساخته بشه.اگر دوستان در این رابط بهم کمک کنن خیلی ممنون میشم؟

Alireza.imani
دوشنبه 27 آذر 1391, 20:38 عصر
سلام با استفاده از کد زیر می تونی بسازی:


con.Open();
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = con;
cmd.CommandText = "CREATE TABLE [" + textBoxX6.Text + "]([E] int NOT NULL,[D] Date NOT NULL,[C]int NOT NULL,[B]int NOT NULL,[A]Text NOT NULL)";
cmd.ExecuteNonQuery();

con.Close();

در این کد textBox6 اسم جدوله و این جدول چند فیلد به نام های A ,B,C,D,E وجود داره که جلوی هر یک از نام فیلد ها نوعشون رو نوشته که من D رو تاریخ قرار داده ام.اگر توضیح بیش تر خواستین در خدمتم.:لبخندساده:

موفق باشــــــی:لبخند:

09178525592
سه شنبه 28 آذر 1391, 12:02 عصر
سلام با استفاده از کد زیر می تونی بسازی:


con.Open();
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = con;
cmd.CommandText = "CREATE TABLE [" + textBoxX6.Text + "]([E] int NOT NULL,[D] Date NOT NULL,[C]int NOT NULL,[B]int NOT NULL,[A]Text NOT NULL)";
cmd.ExecuteNonQuery();

con.Close();

در این کد textBox6 اسم جدوله و این جدول چند فیلد به نام های A ,B,C,D,E وجود داره که جلوی هر یک از نام فیلد ها نوعشون رو نوشته که من D رو تاریخ قرار داده ام.اگر توضیح بیش تر خواستین در خدمتم.:لبخندساده:

موفق باشــــــی:لبخند:


خیلی ممنون بدردم خورد.
فقط یه سوال دیگه داشتم می خواستم همراه با این که یه جدول میسازه یه tab هم به tabcontrol اضافه بشه که داخلش یه دیتا گرید ویو داشته باشه که اطلاعات رو هم از دیتابیس نشون بده؟

Alireza.imani
سه شنبه 28 آذر 1391, 17:57 عصر
نظر من اینه که یک تب کنترل ایجاد کن و یک کمبوباکس و یک دیتاگریدویو بگذار و visible اش رو در Form_load، false کن.برای اینکه نام جدول های موجود در دیتابیس در اون کمبوباکس بیاین در Form_Load این کد رو بنویسید:


con.Open();

DataTable userTables = null;
string[] restrictions = new string[4];
restrictions[3] = "Table";
userTables = con.GetSchema("Tables", restrictions);


// Add list of table names to listBox
for (int i = 0; i < userTables.Rows.Count; i++)
comboBoxEx1.Items.Add(userTables.Rows[i][2].ToString());


con.Close();
بعدش در رویداد Selected index changed کمبوباکس این کد رو بنویس تا فرد با انتخاب نام جدول از کمبوباکس دیتاگرید ویو اون جدول رو لود کنه:


con.Open();
OleDbCommand cmd = new OleDbCommand();
cmd.CommandText = "SELECT A,B,C,D,E FROM [" + comboBoxEx1.Text + "] ";
cmd.Connection = con;

DataTable dt = new DataTable();
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
da.Fill(dt);
BindingSource bg = new BindingSource();
bg.DataSource = dt;

foroosh.DataSource = bg;
con.Close();

در نهایت هم آخر اون کدی که توی پست قبل گفتم visible اون tabcontrol رو true کن.

اگه حرفام ابهامی داره بگید تا بازش کنم.

موفق باشــــــــــــــــــــــ ــــــــ ــــــــــ ــــــ ـــــــــــی:لبخند:

09178525592
سه شنبه 28 آذر 1391, 20:25 عصر
نظر من اینه که یک تب کنترل ایجاد کن و یک کمبوباکس و یک دیتاگریدویو بگذار و visible اش رو در Form_load، false کن.برای اینکه نام جدول های موجود در دیتابیس در اون کمبوباکس بیاین در Form_Load این کد رو بنویسید:


con.Open();

DataTable userTables = null;
string[] restrictions = new string[4];
restrictions[3] = "Table";
userTables = con.GetSchema("Tables", restrictions);


// Add list of table names to listBox
for (int i = 0; i < userTables.Rows.Count; i++)
comboBoxEx1.Items.Add(userTables.Rows[i][2].ToString());


con.Close();
بعدش در رویداد Selected index changed کمبوباکس این کد رو بنویس تا فرد با انتخاب نام جدول از کمبوباکس دیتاگرید ویو اون جدول رو لود کنه:


con.Open();
OleDbCommand cmd = new OleDbCommand();
cmd.CommandText = "SELECT A,B,C,D,E FROM [" + comboBoxEx1.Text + "] ";
cmd.Connection = con;

DataTable dt = new DataTable();
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
da.Fill(dt);
BindingSource bg = new BindingSource();
bg.DataSource = dt;

foroosh.DataSource = bg;
con.Close();

در نهایت هم آخر اون کدی که توی پست قبل گفتم visible اون tabcontrol رو true کن.

اگه حرفام ابهامی داره بگید تا بازش کنم.

موفق باشــــــــــــــــــــــ ــــــــ ــــــــــ ــــــ ـــــــــــی:لبخند:

دستت درد نکنه اگه میشه یه پروژه کوچولو هم در این رابط برام بذاری خخخخخییلیی ممنون میشم؟

Alireza.imani
سه شنبه 28 آذر 1391, 20:31 عصر
خواهش می کنم...:لبخند:تشکر یادت نره:قهقهه:

شرمنده...سرم خیلی شلوغه.:گریه: