PDA

View Full Version : نحوه لود اطلاعات از دو جدول توسط id



sepide_68_91
چهارشنبه 20 شهریور 1392, 17:47 عصر
سلام
من دو تا جدول در بانک دارم که با کلید خارجی بهم وصل اند
جدول پدر و فرزندان
من موقع درج id جدول پدر رو می گیرم و در جدول فرزند به عنوان کلید خارجی درج می کنم حالا هر پدری ممکنه چندتا فرزند داشته باشه که این طوری در جدول فرزند مثلا سه سطر ایدی جدول پدر وجود داره

حالا نمی دونم برا ویرایش چطور اطلاعات جدول فرزند که شامل مثلا سه سطر هست رو در تکس باکس های مربوطه بیارم؟
خواهش می کنم
کمکم کنید
ممنون

aghayex
چهارشنبه 20 شهریور 1392, 18:10 عصر
به نظر من طراحی شما اشتباه هست.
اگه من باشم میام یک جدول رو برای ثبت افراد در نظر می گیرم حالا این افراد می خوان پدر باشن یا فرزند یا همسر .
بعد یک جدول دیگه در نظر می گیرم و در اونجا روابط رو معین می کنم مثلا میگم این ای دی مربوط به این ای دی هست و در ستون دیگه نسبت رو معین می کنم

یه چیز دیگه ای که هست شما دارید با کدوم روش به دیتابیس وصل میشید ؟ ado.net- ef , ...

sepide_68_91
پنج شنبه 21 شهریور 1392, 11:03 صبح
با ado.net
ببینید من جدول والد دارم و فرزند
کلید اصلی والد کلید خارجی جدول فرزند هست
حالا میخوام در سه ردیف تکس باکس اطلاعات سه ردیف جدول فرزند رو بیارم
یعنی اول در جدول والد سلکت زدم ایدی رو گرفتم بعد در جدول فرزند سلکت زدم id ای که برار این id هست رو گرفتم که مثلا شده سه تا
حالا موندم چطوری سه تا ردیف رو لود کنم در تکس ها
وقتی اینو بنویسم
dr = com.ExecuteReader();
while (dr.Read())
این اخرین سطر رو در تکس ها میاره(در هر سه ردیف اخرین سطر میاد)
چکار کنم؟
ممنون

aghayex
پنج شنبه 21 شهریور 1392, 15:03 عصر
دوست عزیز شما باید نتیجه ی سلکت رو در یه دیتا تیبل بریزی
بعد هر کاری با اون دیتا تیبل می تونی انجام بدی

sepide_68_91
پنج شنبه 21 شهریور 1392, 17:04 عصر
تو رو خدا اگه راه داره یه نمونه بدید...
ممنون میشم

sepide_68_91
پنج شنبه 21 شهریور 1392, 18:16 عصر
سلام
ممنون
حل شد
اما یه مشکل دیگه هر چی دستور اپدیت رو می نویسم اپدیت نمیشه هیچ باگی هم ندارم
این کدمه
string str = "Data Source=.;Initial Catalog=test;Integrated Security=True";
SqlConnection con = new SqlConnection(str);
con.Open();

string sql = "update users set fname ='" + txtfnam.Text + "',lname='" + txtlnam.Text + "'";
SqlCommand com = new SqlCommand(sql, con);
com.Connection = con;
com.ExecuteNonQuery();

con.Close();

چکار کنم؟؟؟
خواهش می کنم یکی بگه..

aghayex
پنج شنبه 21 شهریور 1392, 18:32 عصر
com.Connection = con;
این دستور اضافیه
آیا خطایی می ده یا نه ؟
بهتون توصیه می کنم که از پارامترها برای فرستادن مقادیر استفاده کنید و اگه وقت دارید برید سمت ef

sepide_68_91
شنبه 23 شهریور 1392, 18:01 عصر
نه خطا ندارم
ببینید اصلا انگار نه انگار که من داده ها رو تغییر میدم توی برک پوینت همون مقادیر قبلی رو نشون میده
؟؟؟؟
بلد نیستم نمونه ندارید؟
ممنون

hamid_hr
سه شنبه 26 شهریور 1392, 17:23 عصر
دستورو تو sqlmanager تست كردي؟

sepide_68_91
چهارشنبه 27 شهریور 1392, 08:26 صبح
اره خطا نداره
ولی اپدیتی نمیشه
؟؟؟؟؟؟؟؟؟؟؟
کمک

hamid_hr
چهارشنبه 27 شهریور 1392, 08:54 صبح
خب پس مشكل تو جداول و ديتابيس و ........ هست

sepide_68_91
چهارشنبه 27 شهریور 1392, 16:49 عصر
نه چک کردم بانک مشکل نداره
مشکل اینه که مقادیر قبلی در تکس باکس ها می مونه و مقادیر جدید نمیاد که اپدیت بشه(از طریق برک پوینت دیدم)
؟؟؟؟
ممنون

rayson
چهارشنبه 27 شهریور 1392, 17:16 عصر
سلام یک نمونه کد:
اول مقداری که میخواهید ویرایش کنید را درون تکست مورد نظر میرزید :
private void dgv_madrak_MouseUp(object sender, MouseEventArgs e)
{
// txt_madrak baraye neshandadan Meghdar khane name_madrak Dar an , mydata1 for bakhsh edit and update
txt_madrak.Text = dgv_madrak.CurrentRow.Cells["name_madrak"].Value.ToString();
mydata1 = dgv_madrak[0, dgv_madrak.CurrentRow.Index].Value.ToString();
}

عمل بروز رسانی:
private void btn_madrak_edit_Click(object sender, EventArgs e)
{
// edit and update dgv madrak_tahsili

SqlConnection con = new SqlConnection(connectionString:mycon);
SqlCommand com = new SqlCommand();
com.CommandText = "UPDATE madrak_tahsili SET name_madrak=@name_madrak where id_madrak_tahsili='" + mydata1 + "'";
com.Parameters.AddWithValue("@name_madrak", txt_madrak.Text);
com.Connection = con;
con.Open();
com.ExecuteNonQuery();
con.Close();
refresh_dgv_madrak();
}
موفق باشید.