View Full Version : مشکل در insert کردن دیتا در Access
shaki_phd
جمعه 02 اسفند 1387, 11:16 صبح
سلام
من یه برنامه دارم که با بانک Access کار میکنه
من با Dataset به این بانک وصل میشم بعدش تو قسمت TableAdaptor هرSelect Query تعریف میکنم برام دیتا موردنظر رو بر میگردونه اما یه Insert Query تعریف کردم اما هیچ جوره چیزی تو بانک Access وارد نمیکنه
int n= categoryTableAdapter.I_Category("sss");
حتی عدد یک رو هم بر میگردونه (یعنی یه رکورد Insert شد) اما تو بانکم هیچ تغییری ایجاد نمیشه
ممنون میشم کمکم کنید
shaki_phd
جمعه 02 اسفند 1387, 11:53 صبح
سلام
مشکلم برطرف شد
در واقع درست کارمی کرد اما چون تغییرات رو روی بانکی که توی پوشه BIN بود و من فکر میکردم باید تغییرات رو روی بانک اصلی بدهد
احمد سامعی
جمعه 02 اسفند 1387, 11:58 صبح
سلام
من یه برنامه دارم که با بانک Access کار میکنه
من با Dataset به این بانک وصل میشم
ممنون میشم کمکم کنید[/RIGHT]
من با DataSet كار نمي كنم خيلي اذيت مي كنه و فكر مي كنم سرباره هم ايجاد مي كنه
از كد استفاده كن(فقط يادت باشه براي مقدار هاي عددي نبايد از ' استفاده كني)
public static string InsertData(OleDbCommand Command, string StrConnection, ArrayList Info)
{
string mes = "true";//پيغام خطا
try
{
string pas = "password";
string pathDB = "C:\\myDB.mdb";
string StrConnection = ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + pathDB + ";Jet OLEDB:Database Password=" + pas + "");
OleDbConnection Connection = new OleDbConnection(StrConnection);
OleDbCommand Command = new OleDbCommand();
Command.Connection = Connection;
Connection.Open();
Command.CommandText = "INSERT INTO Info (ID, Name) VALUES(" + Int32.Parse(textBox.ToString()) + ",'" + textBox.Text + "')";
Command.ExecuteNonQuery();
Connection.Close();
}
catch (Exception ex)
{
mes = ex.ToString();
}
return mes;
}
احمد سامعی
جمعه 02 اسفند 1387, 12:00 عصر
سلام
مشکلم برطرف شد
در واقع درست کارمی کرد اما چون تغییرات رو روی بانکی که توی پوشه BIN بود و من فکر میکردم باید تغییرات رو روی بانک اصلی بدهد
من خيلي وقتا اين اشتباه مي كنم هنوزم....:قهقهه::قهقهه::قهقهه:
اوبالیت به بو
جمعه 02 اسفند 1387, 12:41 عصر
از كد استفاده كن(فقط يادت باشه براي مقدار هاي عددي نبايد از ' استفاده كني)
Connection.Open();
Command.CommandText = "INSERT INTO Info (ID, Name) VALUES(" + Int32.Parse(textBox.ToString()) + ",'" + textBox.Text + "')";
}
اين روش پيشنهاد نميشه:
عدم توجه به كلمات كليدي در SQL
استفاده نكردن از parameters ها
احمد سامعی
پنج شنبه 08 اسفند 1387, 17:35 عصر
اين روش پيشنهاد نميشه:
عدم توجه به كلمات كليدي در SQL
استفاده نكردن از parameters ها
دوست عزيز من پست آموزشي شما (ADO.NET در دات نت) رو خوندم اما:
1. استفاده از پارامترها چه مزيتي داره ؟
2. عدم توجه به كلمات كليدي چيه ؟
(من فقط مي خوام ياد بگيرم و نوع سوال كردنم به حساب بحث وجدال نگيريد واقعاً نمي دونم اين دو مورد چيه !)
hasan_esfahan
پنج شنبه 08 اسفند 1387, 23:13 عصر
یک نکته بسیار مهم در مورد کار کردن با دیتاست
دیتاست پایگاه داده شما را به کنار پروژه کپی کند در زمان اجرا (فشردن کلید f5)یک کپی از این بانک به کنار فایل exe برده (پوشه bin\debug)و اجرا می کند که ممکن است شما چند رکورد حذف اضافه و یا.......کنید اما اگر دوباره در حالت طراحی کلید f5 را فشار دهید دو باره یک کپی از بانک به کنار فایل exe برده و اجرا می کند در صورتی که فیلد های که شما حذف یا تغیر دادید همانند قبل وجود دارد و فیلدی که اضافه کردید وجود ندارد
لازم به ذکر است برای اطمینان از کارتون که صحیح است فایل exe چند بار اجرا کنید تا کاملا متوجه منظورم شوید
البته این یک تجربه شخصی بود
اوبالیت به بو
جمعه 09 اسفند 1387, 05:35 صبح
1. استفاده از پارامترها چه مزيتي داره ؟
اگر خيلي خيلي ساده بخوام بگم:
http://www.barnamenevis.org/forum/showpost.php?p=678474&postcount=4
2. عدم توجه به كلمات كليدي چيه ؟
SQL هم مثل خيلي از زبان ها يه سري كلمات كليدي داره مثل همين Name كه خود شما استفاده كرديد.
از دوستان معذرت مي خوام كه تايپيك رو منحرف كردم. موضوع تايپيك چيز ديگري بود. پوزش.
mtaboy
دوشنبه 12 اسفند 1387, 00:05 صبح
یکی از مزیتهای مهم پارامتر جلوگیری از اینجکشن هست
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.