سلام اساتید محترم
لطفا" راهنمایی کنید
من در sql دو جدول دارم . یکی اسامی استانها که شامل نام استان و کد استان هست
دومی اسامی شهر ها که شامل نام استان-کد استان - کد شهر- نام شهر
میخوام تو ویندوز فرم سی شارپ 2تا کمبو باکس بزارم که استانی که انتخاب شده در کمبو باکس اول، اسامی شهرهای زیر مجموعه را در کمبو باکس دوم نمایش دهد
با Data set مقادیر داخل کمبو باکس را مقدار دهی کردم-
مشکلم اینه که تمامی اسامی شهر ها نمایش داده میشود
ولی من میخوام شهرهای زیر مجموعه استان انتخابی نمایش داده شود
داخل کمبو باکس اول به تعداد داخل جدول system.data.datarowview میزاره
مشکل چیست ؟
مشکل را کامل توضیح دهید و کدهاتون رو از طریق ادیتور قرار بدید
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; } } }
فایل ضمیمه شامل عکس برنامه میباشد
به شکل زیر اصلاح کنید
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; }
باز هم همونطوری هست
تورو خدا کمکم کنید . 2 روز گیر اینم
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; }
ممنون بابت پیگیریتون
بر طرف نشد هنوز امکانش هست به خاطر فارسی بودن نام استانها در دیتا بیس باشه؟
تصویری از جدول و خروجی برنامه قرار دهید
در نام ستون ها فاصله را حذف کنید و کد رو اصلاح کنید و تست کنید
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)