منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
مساعده - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة السي شارب C#.NET (http://vb4arb.com/vb/forumdisplay.php?fid=175)
+--- قسم : قسم اسئلة C#.NET (http://vb4arb.com/vb/forumdisplay.php?fid=176)
+--- الموضوع : مساعده (/showthread.php?tid=26047)

الصفحات: 1 2


مساعده - alijmail - 09-08-18

ماهو الخطاء


RE: مساعده - sendbad100 - 09-08-18

السلام عليكم 

ارجو  وضع عنوان  مناسب 

ورفع  المشروع او نسخة مصغرة منه 
او اقل شيء  ضع الكود الذ فيه الخطأ

حتى يتم مساعدك من الاخوة الكرام 



RE: مساعده - alijmail - 09-08-18

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


RE: مساعده - elgokr - 09-08-18

المشكلة لديك فى كود الاستعلام 
فى هذا السطر
كود :
DataTable tblLogin = DB.GetData("salect * from login_program where is_active='True' and username ='" + txtUser.Text.Replace("'", "") + "' and password='" + txtpass.Text.Replace("'", "") + "'");

فقط جرب ان تجعله بهذا الشكل
كود :
DataTable tblLogin = DB.GetData(@"salect * from login_program where is_active='True' and username ='" + txtUser.Text.Replace("'", "") + "' and password='" + txtpass.Text.Replace("'", "") + "'");

وسيحل المشكلة باذن الله

تحياتى لك
وتمنياتى لك التوفيق



RE: مساعده - alijmail - 09-08-18

نفس المشكله بعد تعديل الكود


RE: مساعده - elgokr - 09-08-18

للاسف انا غير قادر على اختبار اى تعديل
لعدم تمكنى من استخدام قاعدة البيانات يبدو انك تستخدم اصدار اعلى من 2008


على اى حال جرب ان تقم باستبدال هذا السطر
كود :
DataTable tblLogin = DB.GetData("salect * from login_program where is_active='True' and username ='" + txtUser.Text.Replace("'", "") + "' and password='" + txtpass.Text.Replace("'", "") + "'");

ليصبح بهذا الشكل
كود :
           DataTable tblLogin = DB.GetData("SELECT * FROM login_program WHERE is_active='True' and username ='"
               + txtUser.Text.Replace("'", "")
               + "' and password='"
               + txtpass.Text.Replace("'", "")
               + "'");

اذا لم يتغير شئ

فعليك بتجربة استبدالا الكود التالى
كود :
       public static DataTable GetData(string select)
       {
           DataTable tbl = new DataTable();
           cmd.CommandText = select;
           tbl.Load(cmd.ExecuteReader());
           return tbl;
       }

بهذا الكود
كود :
       public static DataTable GetData(string select)
       {
           DataTable tbl = new DataTable();
           cmd.CommandText = select;
           cmd.Connection = conn;
           tbl.Load(cmd.ExecuteReader());
           return tbl;
       }

واذا بقي الحال على ما هو عليك فى هذه الحالة 

ساحتاج منك تغيير نمط الاستعلام لتستبدل الكود التالى
كود :
       public static DataTable GetData(string select)
       {
           DataTable tbl = new DataTable();
           cmd.CommandText = select;
           tbl.Load(cmd.ExecuteReader());
           return tbl;
       }

بهذا الكود
كود :
       public static DataTable GetData(string select)
       {
           DataTable tbl = new DataTable();
           SqlDataAdapter adp = new SqlDataAdapter(select, conn);
           adp.Fill(tbl);
           return tbl;
       }

ملحوظة: بما ان كود الاستعلام يستخدم فقط للتاكد بان يوجد استعلام للبيانات فقط ام لا
فيفضل استخدام كود الاستعلام بهذا الشكل
كود :
SELECT COUNT(*)
جرب ذلك قبل اتمام اى تعديل مسبق

تحياتى لك
وتمنياتى لك التوفيق



RE: مساعده - alijmail - 09-08-18

نعم اخي ضبط الكود الاول
شكرا لك وجمل الله حالك وبيض وجهك
على اهتمامك في الموضوع والرد


RE: مساعده - elgokr - 09-08-18

(09-08-18, 08:42 PM)alijmail كتب : نعم اخي ضبط الكود الاول
شكرا لك وجمل الله حالك وبيض وجهك
على اهتمامك في الموضوع والرد

جميل جداً

و الشكر لله وتقبل منك الله الدعاء

تحياتى لك
وتمنياتى لك التوفيق



RE: مساعده - alijmail - 20-08-18

عند اضافه صنف يطلع هذا الخطاء

هذا الكود حق الجمله
  public  static void AddAction(string SQL)
        {
            if (Application.OpenForms["frmLogin"] != null || Application.OpenForms["frmMain"] == null)
            {
                return;
            }

            string username = v.Username;
            string date = DateTime.Now.ToString("yyyy-MM-dd");
            string time = DateTime.Now.ToString("hh:mmConfuseds");
            Form frm = new Form();
            if (Application.OpenForms["frmMain"] != null)
                frm = Application.OpenForms["frmMain"].ActiveMdiChild;
            string formName = "";
            string operationName = "";
            if (frm != null) formName = frm.Name + " , " + frm.Text;
            if (SQL.Length > 6)
            {
                if (SQL.Trim().Substring(0, 6).ToLower() == "select")
                    operationName = " استعلام ";
                if (SQL.Trim().Substring(0, 6).ToLower() == "insert")
                    operationName = " اظافة";
                if (SQL.Trim().Substring(0, 6).ToLower() == "update")
                    operationName = " تعديل";
                if (SQL.Trim().Substring(0, 6).ToLower() == "delete")
                    operationName = " حذف";
            }
            string pcName = Environment.MachineName + " , " + Environment.UserName;
            string data = SQL.Trim().Replace("'", "''");
            cmd.CommandText = "insert into program_actions (username, action_date, action_time, form_name, operation_name, computer_name, action_data) values('" + username + "','" + date + "','" + time + "','" + formName + "','" + operationName + "','" + pcName + "','" + data + "')";
            cmd.ExecuteNonQuery();


RE: مساعده - elgokr - 20-08-18

كل عام وانت بخير

بخصوص الرسالة واضح ماذا تعنى اخى الحبيب
كل ما فى الامر ان قاعدة البينات فى جدول المطلوب به الاضافة
يوجد عمود باسم action_number فهو من نوع يجب ان يكون له قيمة
اى لا يقبل القيمة فارغ اما ان تقوم التعديل على هذا العمود فى قاعدة البيانات ليقبل فارغ
او انك تضع قيمة عند اتمام الاضافة وستحل المشكلة

لانك فى كود الاضافة لم تقم باستخدام هذا العمود لوضع اى قيمة
يمكنك من قاعدة البيانات ان تجعل له قيمة افتراضية وليكن 0 أو 1 
حسب ما تحتاج انت اليه بما انه من نوع رقم

تحياتى لك
وتمنياتى لك التوفيق