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

مشاكل فى C#

بدأه امجد مختار في 22 أغسطس 2008 · 7 رد · 972 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

لدى بعض الأخطاء فى الأمثلة التالية :

1-

 
int [,,] array =new int [2,2,2];
			array[0, 0, 0] = 7;
			array[2, 1, 2] = 88;
			Console.WriteLine(array[0, 0, 0]);

خطأ :

index out of range

2-

class Program
	{
		static void Main(string[] args)
		{
			Program p = new Program();
			p.ss();
		}
		void ss()
		{
			Console.WriteLine("ss");
		}		   
	 }

لماذا يجب عمل الدالة ss()

static للنداء عليها مباشرة من الدالة main() أو أخذ object من الكلاس للنداء عليها ،

لماذا لا يتم النداء عليها مباشرة بما أنها دالة فى الكلاس نفسه ؟

3-

string x = "provider=microsoft.jet.oledb.4.0;data source=db.mdb";
OleDbConnection  cn = new OleDbConnection(x);
OleDbDataAdapter da = new OleDbDataAdapter("update t1 set name='" + textBox1.Text + "' where name='" + textBox2.Text + "'", cn);
DataSet ds = new DataSet("t1");
da.Fill(ds, "t1");

بعد تنفيذ جملة sql لا تشعر بها قاعدة البيانات إلا بعد إغلاق المشروع وفتحه من جديد فما السبب وما الحل ؟

4- فيما تستخدم كلمة extern ؟

5-

 this.Cursor = Cursors.WaitCursor;
this.Cursor = Cursors.Default;

فيما يستخدم هذين السطرين مع التوضيح بمثال بسيط

وشكراً

تم تعديل هذه المشاركة بواسطة امجد مختار في 22 أغسطس 2008 في 19:13

اللهم اهدنا فيمن هديت - اللهم صلى على سيدنا محمد

من أراد الدنيا فعليه بالقرآن ومن أراد الآخرة فعليه بالقرآن ومن أرادهما معاً فعليه بالقرآن

#2

بالنسبة للسؤال الاخير

اقتباس
this.Cursor = Cursors.WaitCursor;

this.Cursor = Cursors.Default;

تعني ان المؤشر على الفورم الحالية سيكون على شكل WaitCursor اما في السطر الثاني فسيكون المؤشر هو المؤشر الافتراضي في اعدادات الماوس

وهذه يمكن ان تستفيد منها في حالة رغبتك ان يكون للمؤشر شكل خاص على الفورم ويمكن استخدام شكل خاص للمؤشر على كنترول معين كما ترى في حالة Text Box

#3

وبالنسبة للسؤال

اقتباس
class Program

{

static void Main(string[] args)

{

Program p = new Program();

p.ss();

}

void ss()

{

Console.WriteLine("ss");

}

}

للعلم انه لابد لكي تستدعي دالة بدون عمل كائن لابد ان تكون Static كما في الكلاس Console فجميع دواله استاتيك ولذلك ليس لازاما ً عليك تعريف كائن منه اولا كي تستخدم دواله

وبالنسبة للمثال الذي كتبته حتى ترى الدالة Main الدالة الاخرى ss لابد ان تكون الاخيرة ايضا Static

والا فهي دالة مضمنة داخل الكلاس Program ومرتبطة بالكائن منه وليس به شخصيا

ولذلك كان لابد من تعريف متغير من نوعه كي تستخدم الدالة ss

وبالنسبة للسؤال

اقتباس
int [,,] Array =new int [2,2,2];

array[0, 0, 0] = 7;

array[2, 1, 2] = 88;

Console.WriteLine(array[0, 0, 0]);

فالارقام 2,2, 2 هي سعة المصفوفة وليس اقصى index يمكن ان تحتويه فالمصفوفة تبدأ من الرقم 0

وبالتالي لديك رقمين فقط يمكن ان تدخلهما في كل عمود وتكون index لهما هو 0 , 1

أي ان السطر الثاني خارج حدود المصفوفة لأن اقصى فهرس للمصفوفة هو

array[1,1,1]=88

#4

واليك برنامج بسيط به كيفية صنع كلاس ومحتوياته وطرق ودوال للرسم به في بيئة الدوس Console وكيفية الاستفادة منه وصنع مصفوفة من كائنات منه

والبرنامج عبارة عن الة حاسبة كما في الويندوز في شكلها واسلوب التعامل معها ولكن هذا البرنامج في بيئة Console

ConsoleCalculator.rar

#5

ألف شكر

ولكن بقى سؤالين

1- فيما تستخدم كلمة extern

2-

string x = "provider=microsoft.jet.oledb.4.0;data source=db.mdb";
OleDbConnection  cn = new OleDbConnection(x);
OleDbDataAdapter da = new OleDbDataAdapter("update t1 set name='" + textBox1.Text + "' where name='" + textBox2.Text + "'", cn);
DataSet ds = new DataSet("t1");
da.Fill(ds, "t1");

بعد تنفيذ جملة SQL لا تشعر بها قاعدة البيانات إلا بعد إغلاق المشروع وفتحه من جديد فما السبب وما الحل ؟

وشكراً

اللهم اهدنا فيمن هديت - اللهم صلى على سيدنا محمد

من أراد الدنيا فعليه بالقرآن ومن أراد الآخرة فعليه بالقرآن ومن أرادهما معاً فعليه بالقرآن

#6
اقتباس
فيما تستخدم كلمة extern

لاستدعاء دالة ليست managed code بمعني انها ليست dot net code

مثل ال Windows API او دوال c++ او غيره

#7
اقتباس
بعد تنفيذ جملة SQL لا تشعر بها قاعدة البيانات إلا بعد إغلاق المشروع وفتحه من جديد فما السبب وما الحل ؟

تأكد من اغلاق ال connection و ان كانت fill بتغلقها لحالها

و ايضا استدعي SaveChanges method

بس انت ليه مستخدم update statment و fill ممكن تستخدم updateCommand و SaveChanges

او تستخدم Command Object

#8

لقد قمت بإغلاق الاتصال وقمت باستدعاء دالة

AcceptChanges

ولكن نفس المشكلة ماذا اكتب ؟

وشكراً

اللهم اهدنا فيمن هديت - اللهم صلى على سيدنا محمد

من أراد الدنيا فعليه بالقرآن ومن أراد الآخرة فعليه بالقرآن ومن أرادهما معاً فعليه بالقرآن

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