الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

الرجاء المساعدة طريقة اختيار دولة من ال combobox وتظهر مدنها في الdataGrid

بدأه نبيل.211 في 9 أبريل 2016 · 5 رد · 602 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم 

لدي جدولين  

حدول الدول 

 CREATE TABLE COUNTRIES (
	C_ID int IDENTITY(1,1) NOT NULL,
	C_NAME nvarchar(150) NULL,
 CONSTRAINT [PK_COUNTRIES] PRIMARY KEY CLUSTERED 
(
	C_ID ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

GO

وجدول المدن

    
CREATE TABLE Cities(
	CT_id int IDENTITY(1,1) NOT NULL,
	CT_name nvarchar(150) NULL,
	C_ID int NULL,
 CONSTRAINT [PK_Cities] PRIMARY KEY CLUSTERED 
(
	CT_id ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

ولدي نافذتين النافذة الاولى لادخال الدول والنافذية الثانيه هي للمدن وتحتوي على شبكة البيانات dataGridView وايضا على combobox لاختيار الدولة

اريد انه عندما اختار دولة معينه تظهر مدنها في dataGridView واليكم الاكواد

 

هذا الكود في ال Class

public DataTable GET_ALL_COUNTRY()
        {
            DAL.DataAccessLayer DAL = new DAL.DataAccessLayer();
            DataTable dt = new DataTable();
            dt = DAL.SelectData("GET_ALL_COUNTRY", null);
            DAL.close();
            return dt;
        }


 

    public DataTable GET_ALL_CITY(int ID)
        {
            DAL.DataAccessLayer DAL = new DAL.DataAccessLayer();
            DataTable dt = new DataTable();
            SqlParameter[] param = new SqlParameter[1];
            param[0] = new SqlParameter("@ID", SqlDbType.Int);
            param[0].Value = ID;
            dt = DAL.SelectData("GET_ALL_CITY", param);
            DAL.close();
            return dt;
        }

وهذا الكود في النافذة form

public partial class FRM_CITIES : Form
    {
        DataTable dt = new DataTable();
        BL.CLS_SUPPLIER SUPPLIER = new BL.CLS_SUPPLIER();
        public FRM_CITIES()
        {
            InitializeComponent();
            dt = SUPPLIER.GET_ALL_CITY(comboBox1.SelectedValue);
            
        }

    private void comboBox1_DropDown(object sender, EventArgs e)
        {
            comboBox1.DataSource = SUPPLIER.GET_ALL_COUNTRY();
            comboBox1.DisplayMember = "C_NAME";
            comboBox1.ValueMember = "C_ID";

        }

    private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            dataGridView1.DataSource = (dt);
        }

وهذا هو الاجراء المخزن stored procedure

  create proc GET_ALL_COUNTRY as SELECT C_ID,C_NAME  FROM COUNTRIES order by C_NAME  
---------------------------------------------------------------------------------------------------------

    create proc GET_ALL_CITY @ID int as SELECT Cities.CT_name FROM  Cities INNER JOIN COUNTRIES ON Cities.C_ID = COUNTRIES.C_ID WHERE  (COUNTRIES.C_ID=@ID) ORDER BY Cities.CT_name

واعتذر عن الاطاله لكن حاولت كثير فيه وكل المحاولات بائت بالفشل

وشكرا لكم سلفا

111.jpg

222.jpg

Untitled-2.jpg

تم تعديل هذه المشاركة بواسطة نبيل.211 في 9 أبريل 2016 في 04:39

#2

    private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
             DataTable dt = new DataTable();
        BL.CLS_SUPPLIER SUPPLIER = new BL.CLS_SUPPLIER();
      dt = SUPPLIER.GET_ALL_CITY(comboBox1.SelectedValue);
	dataGridView1.DataSource = (dt);
        }
#3

شكرا على ردك اخوي وجزاك الله خير لكني جربت مثل ما قلت يطلع عندي هذا الخطأ  

Unable to cast object of type  'System.Data.DataRowView' to type 'System.IConvertible'.

 

err.jpg

تم تعديل هذه المشاركة بواسطة نبيل.211 في 9 أبريل 2016 في 16:32

#4
  private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
             DataTable  dt = SUPPLIER.GET_ALL_CITY(comboBox1.SelectedValue);
        BL.CLS SUPPLIER SUPPLIER = new BL.CLS_SUPPLIER();

	dataGridView1.DataSource = (dt);
        }
#5
KARIMSOFT كتب:
  private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
             DataTable  dt = SUPPLIER.GET_ALL_CITY(comboBox1.SelectedValue);
        BL.CLS SUPPLIER SUPPLIER = new BL.CLS_SUPPLIER();

	dataGridView1.DataSource = (dt);
        }

 

يطلع معي هذا الخطأ

Unable to cast object of type 'System.Data.DataRowView' to type 'System.IConvertible

#6

ممكن توصح اكثر الكلاس

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…