PDA

View Full Version : خروجی Access با سی شارپ



reza11_2005
شنبه 13 شهریور 1395, 11:17 صبح
با سلام
من یک فایل دارم
TTTTT.mdb
الان می خواهم ستون های مورد نظر خودم از sql به ستون های مورد نظر TTTTT.mdb وارد کنم
الان ماندام نمی دانم چطور باید این کار انجام بدهم
میشه من راهنمایی کنید و یکنمونه کد بگذارید
ممنون

mrprestige
شنبه 13 شهریور 1395, 21:04 عصر
سلام دوست من ، بنده برای اینکه حجم پست بالا نره یه فایل آموزشی (http://s7.picofile.com/file/8266156468/%D8%B1%D8%A7%D9%87%D9%86%D9%85%D8%A7%DB%8C_%D8%AA% D8%A8%D8%AF%DB%8C%D9%84.docx.html) درست کردم برات امیدوارم با همین مشکلت رو حل کنه البته این یه جور تبدیل کردن بین دو دیتابیس هست . امیدوارم جواب بگیری ولی اگه نشد بگو تا از روش دیگه ای جلو بریم .

به قول دوست عزیزی که فرمایششون برام دلنشین بود اینکه توی کدنویسی "نمیشه" نداریم .

reza11_2005
چهارشنبه 17 شهریور 1395, 08:52 صبح
با سلام
ممنون اما من می خواهم از خوده سی شارپ این کار انجام بدام

mrprestige
چهارشنبه 17 شهریور 1395, 18:03 عصر
مجدد سلام دوست من ، خب اگه میخوای با کدنویسی این مراحل رو جلو بری باید به این شیوه جلوه بری که اول اطلاعاتت رو از بانک SQL بخونی با استفاده از یه SQLDatareader داخل یه Datatable اون رو بارگزاری (Load) کنی سپس یه جدول در بانک Access ایجاد میکنی و فیلد های اون رو نسبت به جدول SQL ایجاد میکنی سپس با استفاده از دستور Insert into و یه حلقه Foreach یه DataRow ایجاد میکنیم و میگیم به ازای هر سطری که در در بانک SQL ایجاد یا مقدار دهی شده داخل بانک Access مون هم ایجاد بشه ، تمام این هایی که الان عرض کردم رو براتون بشکل کدنویسی درآوردم امیدوارم همونی باشه که میخواید

SqlConnection cn = new SqlConnection("SQL Connection String");
SqlCommand cm = new SqlCommand("select id, Name from STable", cn);
SqlDataReader mSqlReader;
cn.Open();
mSqlReader = cm.ExecuteReader();
DataTable dt = new DataTable();
dt.Load(mSqlReader);
cn.Close();
OleDbConnection accessConnection = new OleDbConnection("Access Connction String");
accessConnection.Open();
OleDbCommand cm1 = new OleDbCommand("CREATE TABLE ATable(ID int, FName char(50))", accessConnection);
cm1.ExecuteNonQuery();
OleDbCommand insertCommand = new OleDbCommand(@"INSERT INTO ATable (ID, FName) VALUES (@id, @fname)",accessConnection);
foreach (DataRow row in dt.Rows)
{
insertCommand.Parameters.Clear();
insertCommand.Parameters.AddWithValue("@id", row["id"].ToString());
insertCommand.Parameters.AddWithValue("@fname", row["Name"].ToString());
insertCommand.ExecuteNonQuery();
}

پیروز و موفق باشید

reza11_2005
دوشنبه 29 شهریور 1395, 08:19 صبح
با سلام
ممون بابت پاسخ دادن

فقط یک مورد

این جدول من است:


ردیف

نام

مبلغ

توضیحات



1

رضا

200

ایران



2

احمد

300

بوشهر



3

محمد

150

تهران





و این هم جدول فایل آمده access است



ردیف

مقصد

گیرنده

تحویل

نام

مبلغ

توضیحات

















حالا
من می خواهد فیلد های جدولم داخل قسمت های مورد نظر در جدول دوم به وسیله سی شارپ وارد کنم
با روش بالاجواب نداد
ممنون می شوم راهنمایی بفرماید
تشکر

mrprestige
دوشنبه 29 شهریور 1395, 16:52 عصر
مجددا سلام ، خب این مسلمه دوست عزیز ،اولا که تعداد ستون های جدول اکسس تون (جدولی که می خواهید ) برابر با جدول SQL تون نیست . بعدم بازم کاری نداره شما از اون روش که عرض کرده بودم جدول SQL رو به Access انتقال بدید بعد بیاید بطور دستی توی خوده Access توی Design view جدولتون ستون های مورد نظرتون رو ایجاد کنید .

reza11_2005
جمعه 09 مهر 1395, 21:45 عصر
مجدد سلام دوست من ، خب اگه میخوای با کدنویسی این مراحل رو جلو بری باید به این شیوه جلوه بری که اول اطلاعاتت رو از بانک SQL بخونی با استفاده از یه SQLDatareader داخل یه Datatable اون رو بارگزاری (Load) کنی سپس یه جدول در بانک Access ایجاد میکنی و فیلد های اون رو نسبت به جدول SQL ایجاد میکنی سپس با استفاده از دستور Insert into و یه حلقه Foreach یه DataRow ایجاد میکنیم و میگیم به ازای هر سطری که در در بانک SQL ایجاد یا مقدار دهی شده داخل بانک Access مون هم ایجاد بشه ، تمام این هایی که الان عرض کردم رو براتون بشکل کدنویسی درآوردم امیدوارم همونی باشه که میخواید

SqlConnection cn = new SqlConnection("SQL Connection String");
SqlCommand cm = new SqlCommand("select id, Name from STable", cn);
SqlDataReader mSqlReader;
cn.Open();
mSqlReader = cm.ExecuteReader();
DataTable dt = new DataTable();
dt.Load(mSqlReader);
cn.Close();
OleDbConnection accessConnection = new OleDbConnection("Access Connction String");
accessConnection.Open();
OleDbCommand cm1 = new OleDbCommand("CREATE TABLE ATable(ID int, FName char(50))", accessConnection);
cm1.ExecuteNonQuery();
OleDbCommand insertCommand = new OleDbCommand(@"INSERT INTO ATable (ID, FName) VALUES (@id, @fname)",accessConnection);
foreach (DataRow row in dt.Rows)
{
insertCommand.Parameters.Clear();
insertCommand.Parameters.AddWithValue("@id", row["id"].ToString());
insertCommand.Parameters.AddWithValue("@fname", row["Name"].ToString());
insertCommand.ExecuteNonQuery();
}

پیروز و موفق باشید

سلام این کد تست شد؟ چون برای من جواب نداد
ممنون می شوم