PDA

View Full Version : سوال: وارد کردن اطلاعات در بانک اطلاعاتی دارای رابطه



IMANAZADI
پنج شنبه 17 اسفند 1391, 11:36 صبح
با سلام
یک برنامه نوشتم که باید یکسری اطلاعات رو داخل بانک اکسس بریزه
فایل اکسس شامل 3 جدول می باشد
که شرح و ارتباط آن ها در زیر ضمیمه اول مشخص می باشد
حال میخوام طبق فرم که عکس آن در ضمیمه دوم آورده شده اطلاعات رو در جداول مربوطه وارد کنم
در کمبوباکس اول اطلاعات از فیلد UNITNAME از جدول UNIT خوانده و پر میشود
در کمبوباکس دوم اطلاعات از فیلد DESCRIPTION از جدول DESCRIPTIONS خوانده و پرمیشود
فقط نمیدانم چطوری باید فیلد QTY رو در جدول QTY وارد کنم
چون در جدول QTY باید UNITIDوDESID از کمبوهای انتخاب شده با توجه به شرح انتخاب شده در جدول مربوطه وارد شود
کد بدین صورت میشه فقط نمیدونم ID ها رو چطوری بدست بیارم



OleDbCommand cmd = new OleDbCommand("insert into QTY (UNITID,DESID,QTY)VALUES(@P1,@P2,@P3)" , cnn);

cmd.Parameters.Clear();

cmd.Parameters.AddWithValue("@p1" , آی دی فیلد انتخاب شده کمبو1);
cmd.Parameters.AddWithValue("@p2" , آی دی فیلد انتخاب شده کمبو2);
cmd.Parameters.AddWithValue("@p3" , QTY.Text );



ممنون میشم

veniz2008
پنج شنبه 17 اسفند 1391, 12:34 عصر
سلام.
خداییش من یا هر کس دیگه ای چطور باید بفهمیم که QTY چی هست؟. این بدترین نوع نامگذاری فیلد هست. یه کم درباره این فیلد توضیح بده.

IMANAZADI
پنج شنبه 17 اسفند 1391, 12:43 عصر
دوست گرامی اصل مطلب گذاشتی کنار گیر دادی به qty
کل برنامه رو من نذاشتم فقط یک فرمش هست
qty هم تعداد یا همون مقدار هست(quantity)

veniz2008
پنج شنبه 17 اسفند 1391, 12:54 عصر
دوست گرامی اصل مطلب گذاشتی کنار گیر دادی به qty
کل برنامه رو من نذاشتم فقط یک فرمش هست
qty هم تعداد یا همون مقدار هست(quantity)
اصل مطلب رو شما در نظر نگرفتی وگرنه من یه سوال منطقی پرسیدم.
یه جا پرسیدی چطور فیلد QTY رو وارد کنی. خط پایینش پرسیدی که چطور آی دی ها رو بدست بیاری.
برای بدست آوردن آی دی هر آیتم انتخاب شده ار کمبو، باید خاصیت valuemember از کمبوباکس رو با با فیلد آی دی اون جدول ست کنی. واسه جدول UNITS اینطوری میشه :

CmbUnit.ValueMember = "UnitID";
برای استفاده هم از selectedvalue استفاده کن:

cmd.Parameters.AddWithValue("@p1" , Convert.ToInt32(CmbUnit.SelectedValue));
موفق باشی.

IMANAZADI
پنج شنبه 17 اسفند 1391, 13:37 عصر
آقای عزیز قربون دستت بیخیال نخواستیم راهنمایی شما
چه ربطی داره فیلد qty چی باشه حالا یا تکس یا نامبر یا هر چیز دیگه
خودم پیداش کردم
پیدا کردن آی دی از طریق کد زیر


private object srch (ComboBox cmbx)
{

OleDbCommand cmd = new OleDbCommand("select desid from description where description.[description]='" + cmbx.Text + "'" , cnn);
cnn.Open();
return cmd.ExecuteScalar();
}



OleDbCommand cmd2 = new OleDbCommand("insert into QTY (UNITID,DESID,QTY)VALUES(@P1,@P2,@P3)" , cnn);

cmd2.Parameters.Clear();
object a= srch(comboBox1);

cmd2.Parameters.AddWithValue("@p1" , a.ToString());


این واسه پیدا کردن آی دی description

واسه مابقی هم بصورت بالا عمل میکنیم زمانیکه آی دی unit هم بدست اومد با دستورinsertinto واردش میکنیم