السلام عليكم
لدي جدولين
حدول الدول
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
واعتذر عن الاطاله لكن حاولت كثير فيه وكل المحاولات بائت بالفشل
وشكرا لكم سلفا


