+2 امتیاز
با سلام

 

لطفا نحوه ساختن کمبو باکسهای Master/Details رو بفرمائید.

با این شرط که هر کمبو باکس اطالاعاتش رو در هنگام لود فرم از دو جدول مختلف از اس کیو ال بخونن.
بسته شده

2 پاسخ

+3 امتیاز
 
بهترین پاسخ

سلام

کار راحتیه

داخل فرم لود برنامه 2 تا DataTable بساز و 2 تا دستور Select جداگانه براش بذار و مقدار دهی کن مثل:

SqlDataAdapter da = new SqlDataAdapter();
            DataTable dt = new DataTable();
            SqlCommand com=new SqlCommand();
            SqlConnection con = new SqlConnection();
            con.ConnectionString = "آدرس DataBase";
            com.CommandText="Select * From Moshtari";
            da.SelectCommand = com;
            con.Open();
            da.Fill(dt);
            con.Close();
            ComboBoxMoshtari.DataSource = dt;
            ComboBoxMoshtari.DisplayMember = "نام ستون مورد نظر";

به همین ترتیب برای سفارشات 

 

و حالا در رویداد SelectedIndexChange کمبو باکس مشتری رو هم دستورات زیر رو بنویس :

SqlDataAdapter da = new SqlDataAdapter();
            DataTable dt = new DataTable();
            SqlCommand com = new SqlCommand();
            SqlConnection con = new SqlConnection();
            con.ConnectionString = "آدرس DataBase";
            com.CommandText = "Select * From Sefaresh Where Id=@Id";
            com.Parameters.Clear();
            com.Parameters.AddWithValue(@"Id",ComboBoxMoshtari.Text);
            da.SelectCommand = com;
            con.Open();
            da.Fill(dt);
            con.Close();
            ComboBoxMoshtari.DataSource = dt;
            ComboBoxMoshtari.DisplayMember = "نام ستون مورد نظر";

من برای مثال Id رو داخل کمبو باکس نشون دادم و فرض هم بر اینه که ستون های مشترک Id 

با کمی جابه جا کردن دستورات می تونی 1 شکل بهتر و بهینه تر داشته باشی

+3 امتیاز

سلام

شما به اين روش مي توني عمل كني : 

 

مانند تصوير :‌

 

 

ابتدا Modifiers   ديتا گريد ويو رو برروي public تنظيم كنيد سپس در فرم مورد نظر در داخل كمبوباكس اين دستورات رو بنويسيد .

  private void comboBoxCourierCod_SelectedIndexChanged(object sender, EventArgs e)
        {
            Courier co = new Courier();
            co.dataGridViewCourier.DataSource = model.Sp_SelectCourier().ToList();
            foreach(DataGridViewRow row in co.dataGridViewCourier.Rows)
            {

                if (comboBoxCourierCod.Text == row.Cells[0].Value.ToString())
                {
                    comboBoxCourierDetail.Text=(row.Cells[1].Value.ToString() + " " + row.Cells[2].Value.ToString());
                }
          
          
            }
           
        }

 

نكته اي كه لازمه بگم من با Entity نوشتم كه با يك خورده تغيير مي تونيد تنظيمش كنيد .
 

با سلام

ببینید من دوتا جدول دارم که توسط یک فیلد با هم ارتباط دارن به اینصورت که مثلا یک مشتری میتونه چند تا سفارش داشته باشه

خوب حالا دو تا کمبوباکس دارم یکی نام مشتریا و دیگری سفارشات

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

البته من لینک بلد نیستم اگه امکانش هست ADO باشه

 

ممنون

توسط (115 امتیاز) 1 7
سوال جدید

2,337 سوال

2,871 پاسخ

3,725 دیدگاه

3,924 کاربر

دسته بندی ها

...