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

احتاج اوامر اكسس عوضا عن اسكيوال سيرفر

بدأه mallokbakkar في 19 يونيو 2012 · 7 رد · 947 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

عندي قاعدة بيانات SQL SERVER 2008 واريد وقمت بانشاء قاعدة ACCES واريد تحويل اوامر البرنامج الى قاعدة الاكسس ولكني لا اعلم ما هي اوامر الاكسس فما هي الجمل المقابلة لهذه:

using System.Data.SqlClient;

SqlConnection cn = new SqlConnection();

using (SqlCommand cmd = new SqlCommand())
            {
                cn.Open();
                cmd.Connection = cn;
                cmd.CommandType = CommandType.Text;
                cmd.CommandText = "select max (id) from members_data";
                try { int h = (int)cmd.ExecuteScalar() + 1; textBox1.Text = h.ToString(); }
                catch (InvalidCastException) { textBox1.Text = "1"; }
                cn.Close();

            }

cmd.Connection = cn;
                cn.Open();

                cmd.CommandType = CommandType.StoredProcedure;
                cmd.CommandText = "insert_member";
                cmd.Parameters.Add("@id", SqlDbType.Int).Value = textBox1.Text;
                cmd.Parameters.Add("@snam", SqlDbType.VarChar, 50).Value = textBox2.Text;
                cmd.Parameters.Add("@nam", SqlDbType.VarChar, 50).Value = textBox3.Text;
                cmd.Parameters.Add("@adress", SqlDbType.VarChar,50).Value = textBox4.Text;
                cmd.Parameters.Add("@person", SqlDbType.VarChar, 50).Value = textBox5.Text;
                cmd.Parameters.Add("@room", SqlDbType.VarChar, 50).Value = comboBox1.Text;
                cmd.Parameters.Add("@team", SqlDbType.VarChar, 50).Value = comboBox2.Text;
                cmd.Parameters.Add("@know", SqlDbType.VarChar, 300).Value = textBox7.Text;
                cmd.Parameters.Add("@fullnam", SqlDbType.VarChar, 50).Value = textBox8.Text;
                cmd.Parameters.Add("@phone", SqlDbType.VarChar, 50).Value = textBox9.Text;
                cmd.Parameters.Add("@study", SqlDbType.VarChar, 50).Value = textBox10.Text;
                cmd.Parameters.Add("@old", SqlDbType.VarChar, 50).Value = textBox11.Text;
                cmd.Parameters.Add("@too", SqlDbType.VarChar, 50).Value = comboBox3.Text;
                cmd.Parameters.Add("@notes", SqlDbType.VarChar, 150).Value = textBox12.Text;
                cmd.ExecuteNonQuery();
                cn.Close();

ارجو افادتي بأسرع وقت

#2

السلام عليكم ...

  1. استخدم الأنواع التالية حسب مقابلها في برنامجك ..
    using System.Data.OleDb;
    		OleDbConnection con;
    		OleDbCommand com;
    		OleDbDataAdapter ad;
    		OleDbType.VarChar ;

    بدلا من :

    using System.Data.SqlClient;
    		using System.Data.SqlTypes;
    		SqlConnection con;
    		SqlCommand com;
    		SqlDataAdapter ad;
    		SqlDbType.VarChar

  2. يكون الــ Connection String بأحد الشكلين .. إما المحرك Jet أو المحرك ACE و هو الحديث ..
    Dim ConnSTR As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Application.StartupPath + "\MyDb.accdb;Persist Security Info=False;"
    OleDbConnection connection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source="+ Application.StartupPath + @"\db1.mdb"+ ";Persist Security Info=False");

تم تعديل هذه المشاركة بواسطة houssam11350_11350 في 19 يونيو 2012 في 14:53

1

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#3

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

أرغب في إضافة الموضوع التالي الذي له علاقة بالنقاش الجاري

/index.php?showtopic=221861&st=0&p=1096058&fromsearch=1&

قد لا يكون هذا الموضوع ذو علاقة مباشرة بالموضوع الجاري مناقشته لكنه يوضح الفرق في الإستعلامات بين أكس و سيكول سيرفر

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

تم تعديل هذه المشاركة بواسطة DOWNLOADER في 19 يونيو 2012 في 19:01

#4

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

cmd.CommandType = CommandType.StoredProcedure;
                cmd.CommandText = "insert_member";
                cmd.Parameters.Add("@id", SqlDbType.Int).Value = textBox1.Text;
cmd.ExecuteNonQuery();

شلون رح يصير بعد اذنك

يعني شلون رح اضيف عقاعدة البيانات :cool: :cool:

تم تعديل هذه المشاركة بواسطة mallokbakkar في 19 يونيو 2012 في 22:26

#5

السلام عليكم ...

  1. تأكد من وجود :
    using System.Data.OleDb;

  2. يكون الكود :
    cmd.CommandType = CommandType.StoredProcedure;
            	cmd.CommandText = "insert_member";
            	cmd.Parameters.Add("@id", OleDbType.Integer).Value = textBox1.Text;
            	cmd.ExecuteNonQuery();

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#6

في الاكسس لا يوجد StoredProcedure

#7

السلام عليكم ...

اقتباس
في الاكسس لا يوجد StoredProcedure
الــ Parametrized Query يسميها البعض Stored Procedure في الأكسس , و هي ليس Stored Procedure بالمعني الذي نعرفه في الأوراكل أو سيكوال سيرفر ... بل هي استعلامات ببارمترات ... و لكنها تنتج من تنفيذ الأمر Create Procedure .. مثال :
OleDbConnection connection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source="+ Application.StartupPath + @"\mydb.mdb"+ ";Persist Security Info=False");
			connection.Open();
			OleDbCommand command = new OleDbCommand();
			command.Connection = connection;
			command.CommandText = "create procedure EmployeeUpdate ([_ID] Long, [_EmpName] Text, [_Age] Long) As Update Employee SET EmpName = [_EmpName] , Age = [_Age] WHERE ID = [_ID];";
			command.ExecuteNonQuery();
			connection.Close();

بشرط ان يكون الجدول Employee موجود و بالحقول المذكورة ... و هذا سيولد لدينا الاستعلام التالي في قاعدة البيانات :

PARAMETERS [_ID] Long, [_EmpName] Text, [_Age] Long;
UPDATE Employee SET Employee.EmpName = [_EmpName], Employee.Age = [_Age]
WHERE (((Employee.[ID])=[_ID]));

طبعا كنت ببساطة ممكن تأخذ استعلام جديد ثم view SQL ثم تكتب العبارات السابقة .. و يكون استدعاؤه ..:

OleDbConnection connection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source="+ Application.StartupPath + @"\mydb.mdb"+ ";Persist Security Info=False");
			connection.Open();
			OleDbCommand command = new OleDbCommand();
			command.Connection = connection;
			command.CommandType = System.Data.CommandType.StoredProcedure;
			command.CommandText = "EmployeeUpdate";
			command.Parameters.AddWithValue("[_ID]" , 1);
			command.Parameters.AddWithValue("[_EmpName]" , "E1");
			command.Parameters.AddWithValue("[_Age]" , 1);
			command.ExecuteNonQuery();

مثال على الــ Insert يكون :

PARAMETERS [_ID] Long, [_LName] Text, [_IsInToolBar] Bit;
INSERT INTO QuickList ( LName, IsInToolBar )
SELECT [_LName] AS Expr1, [_IsInToolBar] AS Expr2;

مثال آخر :

PARAMETERS [_ID] Long;
SELECT ItemGroup.[ID], ItemGroup.[GroupName]
FROM ItemGroup
WHERE (((ItemGroup.[ID])=[_ID]));

الــ MyGeneration مع الموديل Doodads يقوم بتوليد هذه الإجراءات مباشرة .. و وضعها في القاعدة ..

تم تعديل هذه المشاركة بواسطة houssam11350_11350 في 20 يونيو 2012 في 12:51

1

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#8

شكرا اخي houssam11350_11350 علي المعلومه

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

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

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

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

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