PDA

View Full Version : سوال: مـشـکـل ایـن پـروژه تـسـت کـجـاسـت ؟



akarsu
سه شنبه 21 تیر 1390, 18:21 عصر
اگه کسی میتونه کمک کنه تا مـشـکـل ایـن پـروژه تـسـت رو پیدا کنم ....

فقط کافی یکی از یزرگان یک لطفی کنه یه نگاهی به این بندازه
برای من تو
con1.Open();/
error میده

دیتابیسش Sql 2008

akarsu
چهارشنبه 22 تیر 1390, 15:10 عصر
کسی نمیتونه کمک کنه ؟:گریه:

gilas1368
چهارشنبه 22 تیر 1390, 16:14 عصر
سلام دوست گرامی
مشکل شما سر آدرسیه که به str1 پاسش دادین
database تون رو داخل یه پوشه به اسم DB داخل درایو C کپی بگیرید درست میشه.
اینم برنامتون بدون مشکل :


72400

پیروز باشید

akarsu
پنج شنبه 23 تیر 1390, 06:53 صبح
خیلی ممنون واسه راهنمایتون ... مشکل حل شد :لبخندساده:

اما یه سوال دیگه داشتم
وقتی اطلاعاتی رو تو جدول ذخیره می کنیم این اطلاعات تو جدول زیر هم به ترتیب تو ردیفهای 1 -2 و .... ذخیره میشن
الان دستوری وجود داره که بشه شماره ردیفی رو که قراره اطلاعاتی در اون ذخیره بشه رو تو یک textbox ریخت یا باید برای اونم یک ستون مجزا ساخت:متفکر:

gilas1368
پنج شنبه 23 تیر 1390, 09:54 صبح
با سلام
شماره ردیف رو نمی دونم اما با استفاده از SCOPE_IDENTITY می تونی به آخرین رکورد Insert شده دسترسی پیدا کنی بعد میشه به این عدد یه واحد اضافه کرد که میشه رکوردی که می خواید Inser کنید.
طریقه کار با SCOPE_IDENTITY هم آسونه به این شکل که دستور Command تون رو با این عوض کنید یا یه Command جدید ایجاد کنید و نتیجه این Command رو به یه TextBox منتقل کنید.


SqlCommand com = new SqlCommand();
com.Connection = con;
com.CommandText = "select SCOPE_IDENTITY()";


موفق باشید

akarsu
پنج شنبه 23 تیر 1390, 12:13 عصر
شرمنده میتونید در این کد قراراش بدید من گذاشتم اما کار نکرد
SqlConnection con1 = new SqlConnection();
con1.ConnectionString = str1;
con1.Open();
SqlCommand cm1 = new SqlCommand();
cm1.CommandText = "insert into tb1(use_name, Family)" +
"values('" + textBox1.Text + "','" + textBox2.Text + "')";
cm1.Connection = con1;
cm1.ExecuteNonQuery();
MessageBox.Show("ثبت اطلاعات با موفقيت انجام شد");
con1.Close();

gilas1368
پنج شنبه 23 تیر 1390, 13:40 عصر
اول باید چندتا کار انجام بدین
1-پایگاه دادتون رو دوباره بسازین فقط داخل این پایگاه داده باید یه فیلد به اسم id داشته باشید و خاصیت identity specification رو باز کنید(پائین صفحه قرار داره) و مقدار خاصیت Is Identity رو true کنید.دقت داشته باشید بعد از انجام اینکار داخل این فیلد هیچ چیزی Insert نمیشه و بطور خودکار به رکورداتون شماره اختصاص میده و با اضافه شدن رکورد بطور خودکار یه واحد به اون اضافه میکنه. اگه می خواید از شماره خاصی شروع بشه می تونید داخل خاصیت Identity incroment مقدار مورد نظرتون رو وارد کنید.
2-حالا این کدها رو جایگزین کدهای خودتون کنید



SqlConnection con1 = new SqlConnection();
con1.ConnectionString = str1;
con1.Open();
SqlCommand cm1 = new SqlCommand();
SqlCommand cm = new SqlCommand();
cm1.CommandText = "insert into tb1(use_name, Family)" +
"values('" + textBox1.Text + "','" + textBox2.Text + "')";
cm.CommandText = "Select max(id) from Test";
cm1.Connection = con1;
cm.Connection = con1;
SqlDataAdapter da = new SqlDataAdapter(cm);
DataSet ds = new DataSet();
da.Fill(ds, "نام جدولتون");
textBox3.DataBindings.Add("text", ds, "نام جدولتون.id");
cm1.ExecuteNonQuery();
MessageBox.Show("ثبت اطلاعات با موفقيت انجام شد");
con1.Close();


بازم تاکید می کنم داخل فیلد id چیزی رو Insert نکنید
در ضمن بجای SCOPE_IDENTITY() من از MAX(id) استفاده کردم شما میتونید این مقدار رو یه واحد اضافه کنید.


موید باشید

akarsu
پنج شنبه 23 تیر 1390, 15:11 عصر
شرمنده بازم مزاحم میشم اما ارور زیر رو میده

gilas1368
پنج شنبه 23 تیر 1390, 15:38 عصر
شما جدولتون رو به پایگاه داده اول که برنامتون error می داد اضافه کردین در حالیکه باید به پایگاهی که داخل درایو C تون کپی گرفتین اضافه می کردین
فقط پایگاه دادتون رو داخل همون پوشه دوباره کپی بگیرید درست میشه

gilas1368
پنج شنبه 23 تیر 1390, 16:34 عصر
با سلام و عرض خسته نباشید

اینم برنامتون،فکر کنم همون طوری شد که می خواستین:لبخندساده:





پیروز باشید

akarsu
پنج شنبه 23 تیر 1390, 18:04 عصر
خیلی ممنون ..همون چیزی بود که می خواستم ......واقعا ممنونم :تشویق: