PDA

View Full Version : مبتدی: مشکل در درج اطلاعات در Database



saahaa
شنبه 17 بهمن 1394, 23:10 عصر
سلام دوستان وقت بخیر من تازه سی شارپ رو شروع کردم الان برنامه اولی که نوشتم موقع اجرا ارور نمیده ولی وقتی دیتا رو وارد میکنم که وارد دیتابیس بشه با ارور زیر روبرو میشم :
138858

ممنون میشم راهنمایی کنید

حسین.کاظمی
شنبه 17 بهمن 1394, 23:17 عصر
سلام
فکر کنم کانکشنت اشتباه است؛ اگر ممکنه کد های همین عکس را که قسمتیش پیداست را کاملشو بزارید

nimaakbari
یک شنبه 18 بهمن 1394, 00:54 صبح
سلام شما کانکش خود را جهت ارتباط با بانک اطلاعاتی باز نکرده اید.

Con.Open();

جهت نمونه از کدهای زیر استفاده کنید

SqlConnection Con = new SqlConnection(ConnectionString);
SqlCommand Com = new SqlCommand(C_Text, Con);
Com.Parameters.AddRange(C_Parameters);// جهت ارسال یک آرایه به عنوان پارامتر
Com.Parameters.AddWithValue("@Param",C_Text);// ارسال یک مقدار همراه با پارامتر متناظر در بانک اطلاعاتی
Con.Open();
int R_Value = Com.ExecuteNonQuery();
Con.Close();

یه فایل در زمینه سی شارپ و نحوه اتصال به بانک اطلاعاتی sqlserver رو هم برای مطالعه بیشتر قرار دادم.
لینک دانلود (http://s6.picofile.com/file/8237463334/C_SQL.pdf.html)

saahaa
یک شنبه 18 بهمن 1394, 17:00 عصر
سلام ممنون از راهنماییتون دوستان ، کانکشن درسته تست کردم اتصال با دیتابیس برقراره و قبل از اینکه از دستور sqlcommand استفاده کنم ، از دستور open استفاده کردم برای باز کردن کانکشن ولی نمیدونم چرا با این پیفام مواجه میشه ، از دوستان دیگه نظری ندارن ؟؟؟

شهابسلطانی
یک شنبه 18 بهمن 1394, 18:23 عصر
دوست من قبل از اینکه از دستور sqlcommand استفاده کنی نباید کانکشن رو باز کنی(con.open();)
ابتدا باید دستور رو اجرا کنی بعد کانکشن رو باز کنی و بعد از (نان کوئری )کردن دوباره کانکشن رو ببندید
سعی کردم واضح توضیح بدم به همین خاطر فارسی نوشتم

Mahmoud Zaad
یک شنبه 18 بهمن 1394, 18:33 عصر
سلام
دوستان گرامی بی زحمت کل کد قسمتی که خطا میده رو برای بررسی قرار بدید ما نه از علوم غریبه سررشته داریم نه طی الارض بلدیم نه پیش گویی.

الان خطا میگه که کانکشن شما بسته است.


دوست من قبل از اینکه از دستور sqlcommand استفاده کنی نباید کانکشن رو باز کنی(con.open();)
ابتدا باید دستور رو اجرا کنی بعد کانکشن رو باز کنی و بعد از (نان کوئری )کردن دوباره کانکشن رو ببندید
سعی کردم واضح توضیح بدم به همین خاطر فارسی نوشتم

نه هیچ مشکلی نداره به هر حال قبل از اجرای متد ExecuteNonQuery باید کانکشن باز باشه حالا چه یک خط قبلش چه هزار خط قبلش. ضمناً اجرای دستورات یعنی اجرای همین متد (یا متدهای مشابه)، کدهایی که قبلش مینویسید برای تنظیم کانکشن و تنظیم کوئری و پارامترهاست و بهش نمیگن اجرای دستورات.

jokerhp
یک شنبه 18 بهمن 1394, 19:16 عصر
SqlCommand cm = newSqlCommand();
cm.Parameters.Clear();
فکر کنم مشکلت این باشه امتحان کن