ربط کمبوباکس به گریدویو - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

ربط کمبوباکس به گریدویو

0 امتیاز
سلام دوستان. من دو تا تیبل در اکسس داشتم  یکی جدول استان ها به همراه کدشون (2 ستون) و دیگری شهرها به همراه کدشون و همچنین کد استان مربوطه (3 ستون)

حالا توی فرمم وقتی لود میشه در یک کمبو باکس لیستی از کدهای استان رو نشون میده (از جدول استانها) و در یک گریدویو لیستی از شهرهای رو به همراه کدشون و کد استانشون (جدول شهرها) میاره

قضیه اینه که مایلم وقتی از کمبوباکس یکی از کدها رو انتخاب می کنه دیتاگریدویو به شکلی تغییر کنه که شهرهای استان مربوطه رو نمایش بده.

بفرمائید دوستان در هنگام رویداد SelectedIndexChange کمبوباکس چه جور ربطی رو به گریدویو بدم که برام فیلتر بشه؟

ممنون از توجه دوستان
سوال شده بهمن 2, 1392  بوسیله ی farzadini (امتیاز 12)   2 2 2

1 پاسخ

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

سلام.

شما در رویداد load فرم، ابتدا کمبوباکس رو از روی جدول استان پر کنید :

SqlConnection con = new SqlConnection("server = .\\md2008; DataBase = DBAzmoon; Integrated Security = True");
SqlDataAdapter da = new SqlDataAdapter("Select * from TblOstan", con);
DataTable dt = new DataTable();
da.Fill(dt);
CmbOstan.DataSource = dt;
CmbOstan.DisplayMember = "OstanName";
CmbOstan.ValueMember = "OstanID";

حالا در رویداد SelectedIndexChanged مربوط به کمبوباکس استان باید گرید رو پر کنید :

private void CmbOstan_SelectedIndexChanged(object sender, EventArgs e)
        {
            SqlDataAdapter da = new SqlDataAdapter("Select * from TblShahr where OstanID = @ostanid", con);
            da.SelectCommand.Parameters.AddWithValue("@ostanid", ((DataRowView)CmbOstan.SelectedItem)["OstanID"] );
            DataTable dt = new DataTable();
            da.Fill(dt);
            GrdShahr.DataSource = dt;
        }

توجه 1 : فرض بر این گرفته شده که از sql استفاده می کنید. اگر از access استفاده می کنید به جای sqlconnection باید از oledbconnection و به جای sqldataadapter باید از oledbdataadapter استفاده کنید.

توجه 2 : کانکشن استرینگ و اسم هایی رو که برای جداول و متغیرها استفاده کردم رو با توجه به پروژه و سیستم خودتون تصحیح کنید.

موفق باشید.

پاسخ داده شده بهمن 3, 1392 بوسیله ی veniz2008 (امتیاز 2,083)   1 5 21
انتخاب شد بهمن 16, 1392 بوسیله ی BlueBlade
...