PDA

View Full Version : سوال: مشکل در نوشتن کوئری انتخاب ، برای نمایش اطلاعات جداولی که با هم relation دارند؟



پیام حیاتی
چهارشنبه 13 اسفند 1393, 16:49 عصر
سلام
این جداول من هست :
129092
و این فرم :
129093
می خواهم با با وارد کردن شماره پرسنلی و کلیک بر روی دکمه جستجو اطلاعات در کامپوننت ها نمایش داده بشه ، مشکلی در پر کردن textbox ها نیست اما نمیدونم چطور باید کوئری بنویسم که اطلاعات سایر جداول رو که در کامپوننت های combobox قرار می گیرن رو نمایش بدم ، چطور چند کوئری انتخاب در یک خط بنویسم؟
این کدها رو نوشتم :

SqlConnection con = new SqlConnection("Data Source=localhost; Initial Catalog=Project; Integrated Security=TRUE ");
con.Open();
SqlCommand com = new SqlCommand("SELECT * from Personels where p_sh_pers= '" + textBox17.Text + "' ", con);
SqlDataAdapter da = new SqlDataAdapter(com);
DataSet ds = new DataSet();
da.Fill(ds, "MAGMember");
v_name.Text = ds.Tables["MAGMember"].Rows[0]["p_name"].ToString();
v_family.Text = ds.Tables["MAGMember"].Rows[0]["p_family"].ToString();
v_sh_sh.Text = ds.Tables["MAGMember"].Rows[0]["p_sh_sh"].ToString();
v_fathername.Text = ds.Tables["MAGMember"].Rows[0]["p_father"].ToString();
v_codmeli.Text = ds.Tables["MAGMember"].Rows[0]["p_sh_meli"].ToString();


v_madrak.SelectedText = ds.Tables["MAGMember"].Rows[0]["p_m_id"].ToString();


v_m_brith.Text = ds.Tables["MAGMember"].Rows[0]["p_m_tavalod"].ToString();


v_t_t_day.Text = ds.Tables["MAGMember"].Rows[0]["p_tt_roz"].ToString();
v_t_t_month.Text = ds.Tables["MAGMember"].Rows[0]["p_tt_mah"].ToString();
v_t_t_year.Text = ds.Tables["MAGMember"].Rows[0]["p_tt_sal"].ToString();
v_sh_pers.Text = ds.Tables["MAGMember"].Rows[0]["p_sh_pers"].ToString();


v_tahol.SelectedText = ds.Tables["MAGMember"].Rows[0]["p_m_id"].ToString();
v_estekhdam.SelectedText = ds.Tables["MAGMember"].Rows[0]["p_m_id"].ToString();
v_kary.SelectedText = ds.Tables["MAGMember"].Rows[0]["p_m_id"].ToString();


v_t_s_kar_day.Text = ds.Tables["MAGMember"].Rows[0]["p_tsh_roz"].ToString();
v_t_s_kar_month.Text = ds.Tables["MAGMember"].Rows[0]["p_tsh_mah"].ToString();
v_t_s_kar_year.Text = ds.Tables["MAGMember"].Rows[0]["p_tsh_sal"].ToString();


t_e_kar_day.Text = ds.Tables["MAGMember"].Rows[0]["p_tp_roz"].ToString();
t_e_kar_month.Text = ds.Tables["MAGMember"].Rows[0]["p_tp_mah"].ToString();
t_e_kar_year.Text = ds.Tables["MAGMember"].Rows[0]["p_tp_sal"].ToString();


con.Close();

این اطلاعات جدول مدرک هست :
129094
با دستوری که من نوشتم


v_madrak.SelectedText = ds.Tables["MAGMember"].Rows[0]["p_m_id"].ToString();

فقط مقدار عددی 1 رو برمیگردونه ، در صورتی که نیاز هست خود item ستون m_status برگشت داده بشه.
تشکر

aslan
چهارشنبه 13 اسفند 1393, 21:27 عصر
سلام
باید از Join استفاده کنید .............
مثلا :



select * From Personels P Inner Join Madrak M On P.p_m_id=M.m_id Inner Join Tahol T On P.p_t_id=T.t_id Inner Join ......

Mofid.m
چهارشنبه 13 اسفند 1393, 21:54 عصر
شما فقط امدی از جدول اول همه رو سلکت کردی باید وضعیت مدرک،وضعیت تاهل و ... رو از جدول های دیگه بخونی
کدی که دوستمون aslan داده درسته
اول بیا جدول ها رو به هم ارتباط بده بعد بیا فیلد های وضعیت اونها رو برابر با ComboBox قرار بده.