مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

hossein.gt86

عضویت از 1396/07/11

کمبو باکس وابسته

  • چهارشنبه 12 مهر 1396
  • 13:49
تشکر میکنم

سلام اساتید محترم

لطفا" راهنمایی کنید 

من در sql  دو جدول دارم . یکی اسامی استانها که شامل نام استان و کد استان هست

دومی اسامی شهر ها که شامل نام استان-کد استان - کد شهر- نام شهر

میخوام تو ویندوز فرم سی شارپ 2تا کمبو باکس بزارم که استانی که انتخاب شده در کمبو باکس اول، اسامی شهرهای زیر مجموعه را در کمبو باکس دوم نمایش دهد

با Data set مقادیر داخل کمبو باکس را مقدار دهی کردم-

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

ولی من میخوام شهرهای زیر مجموعه استان انتخابی نمایش داده شود

پاسخ های این پرسش

تعداد پاسخ ها : 11 پاسخ
کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • چهارشنبه 12 مهر 1396
  • 13:55
کاربر سایت

hossein.gt86

عضویت از 1396/07/11

  • پنجشنبه 13 مهر 1396
  • 10:06

داخل کمبو باکس اول به تعداد داخل جدول system.data.datarowview میزاره

فایل های ضمیمه

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • پنجشنبه 13 مهر 1396
  • 10:08

مشکل چیست ؟

مشکل را کامل توضیح دهید و کدهاتون رو از طریق ادیتور قرار بدید

کاربر سایت

hossein.gt86

عضویت از 1396/07/11

  • پنجشنبه 13 مهر 1396
  • 10:16
namespace Register
{
    public partial class Form1 : Form
    {
        SqlConnection Connection = new SqlConnection(@"data source=.;Initial Catalog=PAN;uid=sa;pwd=GT86");
        DataRow DR;
        public Form1()
        {
            InitializeComponent();
            RefreshCmb();
        }

        public void RefreshCmb()
        {
            Connection.Open();
            SqlCommand cmd = new SqlCommand("SELECT * FROM PROVIENCE", Connection);
            SqlDataAdapter sda = new SqlDataAdapter(cmd);
            DataTable DT = new DataTable();
            sda.Fill(DT);
            Connection.Close();
            DR = DT.NewRow();
            DR.ItemArray = new object[] { 0 };
            DT.Rows.InsertAt(DR, 0);
            cmbProvience.ValueMember = "[Provience ID]";
            cmbProvience.DisplayMember = "[Provience Name]";
            cmbProvience.DataSource = DT;
        }
      

        private void cmbProvience_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (cmbProvience.SelectedValue.ToString()!=null )
            {
                int PID = Convert.ToInt32(cmbProvience.SelectedValue.ToString());
                RefreshCmbCity(PID);
            }
           
        }
        public void RefreshCmbCity(Int32 PID)
        {
            Connection.Open();
            SqlCommand cmd = new SqlCommand("SELECT * FROM CITY WHERE [Provience ID]=@[Provience ID]", Connection);
            cmd.Parameters.AddWithValue("Provience ID", PID);
            SqlDataAdapter sda = new SqlDataAdapter(cmd);
            DataTable DT = new DataTable();
            sda.Fill(DT);
            Connection.Close();
            DR = DT.NewRow();
            DR.ItemArray = new object[] { 0 };
            DT.Rows.InsertAt(DR, 0);
            cmbCity.ValueMember = "[City ID]";
            cmbCity.DisplayMember = "[City Name]";
            cmbCity.DataSource = DT;
        }

    }
}

فایل ضمیمه شامل عکس برنامه میباشد

فایل های ضمیمه

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • پنجشنبه 13 مهر 1396
  • 12:12

به شکل زیر اصلاح کنید

  public void RefreshCmb()
        {
            Connection.Open();
            SqlCommand cmd = new SqlCommand("SELECT * FROM PROVIENCE", Connection);
            SqlDataAdapter sda = new SqlDataAdapter(cmd);
            DataTable DT = new DataTable();
            sda.Fill(DT);
            Connection.Close();
       
              cmbProvience.ValueMember = "[Provience ID]";
            cmbProvience.DisplayMember = "[Provience Name]";
            cmbProvience.DataSource = DT;
}

کاربر سایت

hossein.gt86

عضویت از 1396/07/11

  • پنجشنبه 13 مهر 1396
  • 12:15

باز هم همونطوری هست  

تورو خدا کمکم کنید . 2 روز گیر اینم

crying

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • پنجشنبه 13 مهر 1396
  • 12:17
     public void RefreshCmb()
        {
            Connection.Open();
            SqlCommand cmd = new SqlCommand("SELECT * FROM PROVIENCE", Connection);
            SqlDataAdapter sda = new SqlDataAdapter(cmd);
            DataTable DT = new DataTable();
            sda.Fill(DT);
            Connection.Close();
         
            cmbProvience.ValueMember = "[Provience ID]";
            cmbProvience.DisplayMember = "[Provience Name]";
            cmbProvience.DataSource = DT;
        }
       
 
        private void cmbProvience_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (cmbProvience.SelectedValue.ToString()!=null )
            {
                int PID = Convert.ToInt32(cmbProvience.SelectedValue.ToString());
                RefreshCmbCity(PID);
            }
            
        }
        public void RefreshCmbCity(Int32 PID)
        {
            Connection.Open();
            SqlCommand cmd = new SqlCommand("SELECT * FROM CITY WHERE [Provience ID]=@[Provience ID]", Connection);
            cmd.Parameters.AddWithValue("Provience ID", PID);
            SqlDataAdapter sda = new SqlDataAdapter(cmd);
            DataTable DT = new DataTable();
            sda.Fill(DT);
            Connection.Close();
      
            cmbCity.ValueMember = "[City ID]";
            cmbCity.DisplayMember = "[City Name]";
            cmbCity.DataSource = DT;
        }

کاربر سایت

hossein.gt86

عضویت از 1396/07/11

  • پنجشنبه 13 مهر 1396
  • 12:21

ممنون بابت پیگیریتون

بر طرف نشد هنوز امکانش هست به خاطر فارسی بودن نام استانها در دیتا بیس باشه؟

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • پنجشنبه 13 مهر 1396
  • 12:59

تصویری از جدول و خروجی برنامه قرار دهید

کاربر سایت

hossein.gt86

عضویت از 1396/07/11

  • پنجشنبه 13 مهر 1396
  • 13:15

ضمیمه شد

فایل های ضمیمه

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • پنجشنبه 13 مهر 1396
  • 13:45

در نام ستون ها فاصله را حذف کنید و کد رو اصلاح کنید و تست کنید

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)