السلام عليكم ورحمة الله وبركاته ,يخطىء بعض مبرمجى الفى بى دوت نت فى التفريق بين تعريف المتغير وبين ابتداءه ,فعندما اكتب مثلا
Dim X as Integer
فانا هنا قمت بخطوتين ,قمت بتعريف متغير اسمه x ووضعته فى الذاكرة ووضعت له قيمة صفر,التعريف هو Dim x As integer بينما عملية البدء Instantiation تمت اوتوماتيكيا ,اما فى السى شارب مثلا ,فيجب ان اقوم بعمل Instantiation عن طريق ان اعطى قيمة ل x ,عملية الابتداء فى الفى بى دوت نت يمكننى ان اتحكم فيها عن طريق كتابة التعريف بهذه الصورة Dim X as Integer = 5 مثل.
ملحوظة اذا اظهرت السى شارب وجود خطأ وعمل Ignore فان قيمة اكس ستكون صفر,
وطبتم.
السلام عليكم ورحمة الله وبركاته ,سأشرح هنا كيفية عرض بيانات فى اداة TreeView من قاعدة البيانات فى برمجة الويندوز ,يمكنك ان تحصل على المعلومات باستفاضة وبعدة طرق مختلفة للحل اذا بحثت فى جوجل عن “populating Treeview from database” او “filling Treeview from database” ,عموما سأشرح الفكرة العامة ومثال بسيط .
الفكرة العامة فى نظام ال Treeview هو فكرة شجرة العائلة بالظبط ,فجدك هو اب لابيك وابوك هو ابن لجدك واب لك ,وابوك وعمك ابناء لجدك وابناء عمك على نفس المستوى مثلك ولكن لابيهم .
كما بالشكل:

اذا كل ما علينا هو الآتى ,فى قاعدة البيانات يجب ان يكون هناك عنصر ما اب مثلا primary Key او field Parent للمجموعات تحته Foriegn key او chiled Field ,مثال على ذلك العلاقة بين جدول انواع البضاعة والبضاعة فى قاعدة بيانات Northwind بين جدولى Categories و Products ,فتحت كل صنف Category هناك منتج Product ,
سأقوم باللآتى :
سأقوم بعمل جملة استعلام Query لاحضر كل الاصناف ,اسمائها وارقام مفاتيحها من جدول الاصناف ,ثم سأحضر اسماء المنتجات ومفاتيح اصنافها ,واضع هذين الاستعلامين فى داتاست واقوم بعمل علاقة Relation بينهم بين عمود CategoryID فى جدول الاصناف ونفس العمود فى جدول المنتجات .
بعد ذلك ساقوم باضافة كل صنف على انه Parent Node فى ال TreeView ثم اقوم بعمل Loop على كل ابن لكل صنف واضيفه ك Child node واليكم الكود:
SqlConnection con=new SqlConnection("server=.;database=northwind;integrated security=true;");</pre>
SqlDataAdapter dap;
DataSet ds = new DataSet();
dap = new SqlDataAdapter("SELECT dbo.Categories.CategoryName,dbo.Categories.CategoryID FROM dbo.Categories",con);
dap.Fill(ds, "Categories");
dap = new SqlDataAdapter("SELECT dbo.Products.ProductName,dbo.Products.CategoryID FROM dbo.Products", con);
dap.Fill(ds, "products");
DataRelation dr = new DataRelation("procat", ds.Tables["Categories"].Columns["CategoryID"], ds.Tables["products"].Columns["CategoryID"]);
ds.Relations.Add(dr);
foreach (DataRow prow in ds.Tables["categories"].Rows)
{
TreeNode tn = new TreeNode(prow[0].ToString());
treeView1.Nodes.Add(tn);
foreach (DataRow crow in prow.GetChildRows(dr))
{
tn.Nodes.Add(crow[0].ToString());
}