PDA

View Full Version : اشکال در اتصال به اکسس(Access)



احمد سامعی
دوشنبه 26 شهریور 1386, 12:51 عصر
درود و صد بدرود بر مردمان ایران زمین
این کد کانکشن برای اتصال به دیتابیس اکسس و با استفاده از سیستم OleDb اینزرت نمی کنه اما از همین کد سلکت می کنه



conString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\\MDB.mdb"
OleDbConnection myConnecation = new OleDbConnection(conString);
myCommand.Connection = oleDbConnection1;
oleDbConnection1.Open();
myCommand.CommandText = "INSERT INTO Table (ID, [first name], [secound name]) VALUES ( "+ this.Id.Text +" ," + this.first_name.Text + "," + this.last_name.Text + ")";
myCommand.ExecuteNonQuery();
oleDbConnection1.Close();

لطفاً اشکالش بگین یا راه بهتری هست کدش برام بزارید.
:گریه::گریه::گریه:
پایدار باشید

MH2538
دوشنبه 26 شهریور 1386, 13:08 عصر
سلام
تک کتیشت برای فیلدهای استرینگ رو نگذاشتی:


myCommand.CommandText = "INSERT INTO Table (ID, [first name], [secound name]) VALUES ( "+ this.Id.Text +" ,'" + this.first_name.Text + "','" + this.last_name.Text + "')";

gomnam
دوشنبه 26 شهریور 1386, 13:28 عصر
یا راه بهتری هست کدش برام بزارید.


راه بهتر اینه که از ACCESS کوچ کنی به SQL SERVER و همچنین از command های text به command type های store proceure کوچ کنی

البته توی access هم میتونی store procedure تعریف کنی اما امکاناتی که SQL بهت میده را از دست خواهی داد

اگه یه وقت هوس کوچ کردن به SQL به سرت زد بگو تا روش استفاده از چیزهایی که گفتم را برات بگم گرچه مثال های زیادی وجود داره

اگه برنامت خیلی کوچیکه پیشنهتد میکنم باز هم به جای ACCESS از XML استفاده کنی

ببخشید یادم رفت بگم
یه انتخاب دیگه هم دارین که در گیر این متن های command نشین که دائم کوتیشن ها و.... قاطی بشن
اون استفاده از sqlparameter ها هستند
موفق باشید

MH2538
دوشنبه 26 شهریور 1386, 13:33 عصر
راه بهتر اینه که از ACCESS کوچ کنی به SQL SERVER و همچنین از command های text به command type های store proceure کوچ کنی

البته توی access هم میتونی store procedure تعریف کنی اما امکاناتی که SQL بهت میده را از دست خواهی داد

اگه یه وقت هوس کوچ کردن به SQL به سرت زد بگو تا روش استفاده از چیزهایی که گفتم را برات بگم گرچه مثال های زیادی وجود داره

اگه برنامت خیلی کوچیکه پیشنهتد میکنم باز هم به جای ACCESS از XML استفاده کنی

تنها برای نمونه :‌چطور به سادگی دیتابیس ها (از Access‌ بگیر تا Oracle) با XML‌ چند تا جدول رو با هم join‌می کنی .

gomnam
دوشنبه 26 شهریور 1386, 14:16 عصر
تنها برای نمونه :‌چطور به سادگی دیتابیس ها (از Access‌ بگیر تا Oracle) با XML‌ چند تا جدول رو با هم join‌می کنی .

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

ونکته آخر اینکه همیشه باید سعی کرد تمامی را ه حل ها را پیشنهاد داد و مزایا و معایب اونا را در حد امکان گفت و اون شخص را به سمت مسیر بهتر (دقت کنید مسیر بهتر) هدایت کرد
و پست قبلی من هم در همین راستا بود

PC2st
دوشنبه 26 شهریور 1386, 16:44 عصر
لطفاً اشکالش بگین یا راه بهتری هست کدش برام بزارید.
اگر فیلد ID از نوع Auto Number هست، در حین INSERT نباید مقداری برای این فیلد در نظر بگیرید، چونکه مقدارش بصورت Automatic ایجاد میشه.
همچنین همانطور که MH2538 گفتند، رشته ها در داخل علامت ' قرار میگیرند.

احمد سامعی
سه شنبه 27 شهریور 1386, 09:31 صبح
اگر فیلد ID از نوع Auto Number هست، در حین INSERT نباید مقداری برای این فیلد در نظر بگیرید، چونکه مقدارش بصورت Automatic ایجاد میشه.
همچنین همانطور که MH2538 گفتند، رشته ها در داخل علامت ' قرار میگیرند.

منون استاد مشکل سر علامت ' نیست با اون هم امتحان کردم:متفکر: ارور نمی ده در ضمن ID رو Auto Number نذاشتم

همه اساتید ببخشید:خجالت: این چیزا که شما گفتید رو من می دونم چون من مبتدی صفر نیستم
در ضمن من تمام برنامه هام با SQL Server می نویسم اما می خوام اکسس یاد بگیرم:متفکر:
این کد error نمی ده اما Insert هم نمی کنه اگه کد نمونه برای کانت شدن به اکسس و Insert کردن دارین برام بزارین، منون:تشویق::تشویق:

پایدار باشید.:بوس:

PC2st
سه شنبه 27 شهریور 1386, 18:23 عصر
در ضمن من تمام برنامه هام با SQL Server می نویسم اما می خوام اکسس یاد بگیرم
کار خوبی میکنید.



این کد error نمی ده اما Insert هم نمی کنه اگه کد نمونه برای کانت شدن به اکسس و Insert کردن دارین برام بزارین، منون
پس مطمئن باشید که عملیات INSERT کردن صورت گرفته.

لطفا بعد از INSERT کردن سریعا یک SELECT هم بگیرید و ببینید که آیا در اون لحظه رکورد اضافه شده؟

اگر رکورد اضافه شده بود، یعنی اینکه پس از بسته شدن برنامه، دوباره اطلاعات به حالت اول بر میگرده و در اینصورت باید خاصیت Copy to output directory رو تنظیم کنید.
ممکنه این موارد رو خودتون میدونسته باشین، ولی بهرحال گفتن این موارد بهتر از نگفتنش بود :لبخندساده:

*unos*
چهارشنبه 28 شهریور 1386, 08:07 صبح
امید وارم به دردت بخوره


OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|datadirectory|\\database\\PhoneBook.mdb");
.....
//insert
OleDbCommand command1 = new OleDbCommand("insert into tell (row,fname) values ('" + int.Parse(textBox1.Text.Trim()) + "','" + textBox2.Text.Trim() + "')", con);
con.Open();
command1.ExecuteNonQuery();
con.Close();
MessageBox.Show(".اطلاعات شخص جدید ثبت شد", "اطلاع", MessageBoxButtons.OK, MessageBoxIcon.Information);

احمد سامعی
سه شنبه 03 مهر 1386, 01:12 صبح
یعنی اینکه پس از بسته شدن برنامه، دوباره اطلاعات به حالت اول بر میگرده و در اینصورت باید خاصیت Copy to output directory رو تنظیم کنید.
:لبخندساده:


درود و صد بدرود بر مردمان ایران زمین
منون استاد نکته شما درست بود در مورد کپی کردن اما یک اشکال دیگه هم بود کد اصلاح شده دز زیر گذاشتم


OleDbConnection myConnecation = new OleDbConnection(conString);
OleDbCommand myCommand = new OleDbCommand();
myConnecation.Open();
myCommand = myConnecation.CreateCommand();
myCommand.CommandText = "INSERT INTO myTable (ID) VALUES ( '" + 10+ "')";
myCommand.ExecuteNonQuery();
myConnecation.Close();
پایدار باشید

احمد سامعی
سه شنبه 03 مهر 1386, 01:14 صبح
امید وارم به دردت بخوره

منون از توجهتون اما کد شما نیاز به این خط هم داره من قبلا امتحان کردم و کار نکرد نمی دونم برای شما کار کرده یا نه


myCommand = myConnecation.CreateCommand();

پایدار باشید.

احمد سامعی
سه شنبه 03 مهر 1386, 01:15 صبح
امید وارم به دردت بخوره

منون از توجهتون اما کد شما نیاز به این خط هم داره من قبلا امتحان کردم و کار نکرد نمی دونم برای شما کار کرده یا نه:تشویق::تشویق:


myCommand = myConnecation.CreateCommand();

پایدار باشید.:بوس: