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

مشروع C# - Vcl.net - Prism

رائج
بدأه mohfa في 28 يناير 2009 · 445 رد · 47,607 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#126

على برايسم اخي الكريم

اما بخصوص الكود فانه بسي شارب بسبب تأخري في تحميل البرايسم

نقطة اخرى ...

لماذا لا نخزن صورة للممول في القاعدة او لرمز الشركة الممولة?? :)

العمل كثير و الوقت قليل أعاننا الله

seo zen SEO Enlightment amazon danbo

#127

السلام عليكم

ملاحظات جيد بارك الله فيك

اقتباس
لماذا لا نخزن صورة للممول في القاعدة او لرمز الشركة الممولة??

نعم logo الشركة للاننه لا يهما الشخص الممول بل شركة التمويل ولكي نتعلم ايضا اضافة الصور في القاعدة عملتها سابقا على السي شارب

اخي طلال شكل النوافذ يبين لك ان كان بريسم او دلفي نت وانا انتضر منك النتيجة كي اعينك على الخطوة الموالية

**************************************************************

*** من له مشكلة في عرض بيانات الممول قبل المرور الى نقاط اخري ****

**************************************************************

#128

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

ارجو من الاخوة المحاولة اكثر

هذه محاولتي

Gpharm2009.rar

اللهم علمنا ما ينفعنا وانفعنا بما علمتنا وانفع الناس بنا واغفر لنا وارحمنا

#129

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

اعتذر عن التأخير بسبب الانترنت

قمت بعمل اتصال بقاعدة البيانات والامور بخير والحمد لله

وكنت احاول ادخال البيانات الى القاعدة عن طريقparameterse ????

 with ADOQuery1 do
	begin
	 Close;
	 SQL.Clear;
	 SQL.Add('INSERT INTO Fournisseurs');
	 SQL.Add('( idx,nom,TelephoneTel,Asresse,Email,SitWeb,Remargues)');
	 SQL.Add(' Values');
	 SQL.Add('(:P1,:P2,:P3,:P4,:P5,:p6)');
	 Prepared;
	 Parameters.ParamByName('P1').Value := Edit1.Text;
	 Parameters.ParamByName('P2').Value := Edit2.Text;
	 Parameters.ParamByName('P3').Value := Edit3.Text;
	 Parameters.ParamByName('P4').Value := Edit4.Text;
	 Parameters.ParamByName('P5').Value := Edit5.Text;
	 Parameters.ParamByName('P6').Value := Edit5.Text;
	 ExecSQL

post-169385-1237914290_thumb.jpg

1
#130

لم انتبه ان المطلوب في الصفحة السابقة

سأحاول من جديد :wub:

تم تعديل هذه المشاركة بواسطة طلال بلال في 24 مارس 2009 في 20:20

1
#131

اخي علي

وهل نحتاج الى نفس الامر مع VCL

اضفت Query في قاعدة البيانات .

#132

السلام عليكم

مرحبا اخي طلال

عمل جيد في عملت العرض لكن هل استطعت تنفيذ الاجراء المخزن لعمليت الاضافة .

ارجوا ارفاق المحاولة كي اصححها

----------------------------------------------------------------------------------

لا حول ولا قوة الا بالله اين مشاركاتكم يا اهوة لحد الان اري الا 3 محاولات لعلي و طلال و

fkugd2003

هذا اول مشروع لي سواء في البريسم او vcl.net

تم تعديل هذه المشاركة بواسطة زكيري عبد العالي في 25 مارس 2009 في 03:39

#133

الحمد لله رجع الانترنت

اخوي زكيري اواجه مشكلة بنسخة البريسم ، ساحاول اصلاحها اليوم ان شاءالله .

#134

السلام عليكم

متأسف يا جماعة الانترنت كان مقطوع حتى الان شبك و انها 2 و النصف صباحا

تم عمل الازرار المطلوبة بسي شارب 2005 و سيكوال سيرفر 2005

WindowsApplication1.rar

post-64798-1237963201_thumb.jpg

post-64798-1237963315_thumb.jpg

ارجو تصحيح الاخطاء في حالة وجودها :D

تم تعديل هذه المشاركة بواسطة fkugd2003 في 25 مارس 2009 في 09:44

العمل كثير و الوقت قليل أعاننا الله

seo zen SEO Enlightment amazon danbo

#135

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

هذه محاوله بحاجة الى التصحيح

Copy_of_pharamcy.rar

1
#136

اعتذارك مقبول اخ محمد . لكن ارجوا ان تلحق بنا في اقرب وقت بارك الله فيك .

مشكورين

اخ طلال لكن لم تتقيد بالمطلوب و هو تنفيذ الاجراء المخزن في القاعدة وفي الدلفي نت او win32 هناك مكونين لعمل هذا

TADOCOMMAND

TADOSTOREDPROC

نحن استعملنا ما يشبه الاول في البريسم لكن المنصوح به في الدلفي استعمال المكون الثاني كما ارجوا ان تنشأ المكونات مبرمجيا

وساجد الوقت ان شاء الله لنعمل سويا .

اخ fkugd2003 جيد على هذا الحمس الراءع لاكمال المشروع لم اري السورس الان لكن ف المساء ان شاء الله.

----------------------------------------------------------------------------------------------------------------

الخلاصة :

1-قمنا بانشاء واجهة رئيسية

2-عمل اتصال مع جدول الامول وعرض المحتوي في datagrid

3-تلوين اسطر datagrid

4-انشانا واجهة الممول عند النقر على زر الاضافة او زر التغيير نعرض هذه الاخيرة

5-زر الحفظ يقوم بتنفيذ اجراء مخزن لعملية الاضافة او عمليه التغيير حسب الزر المضغوط عليه

-----------------------------------------------------------------------------------------------------------------

لم يبقى الا :

1-وضع صورة المؤسسة اي نضيف حقل من نوع image

2-وضع اجراء التغيير في قاعدة البيانات .

3-عملية الفلترة عن الممولين المفعلين في النافة الرءيسية بوضع radiobutton مفعل /غير مفعل/ مغلق عند الاختبار نقوم بالفلترة .

------------------------------------------------------------------------------------------------------------------

بعدها ننتقل الى جدول اخر .

شكرا

#137

انشىء المكونات برمجيا , باستخدام TADOSTOREDPROC

مع ان خبرتي كبيرة جدا في NET . الا انني لم اسمع بها من قبل , تصور

لكن سأحاول

1
#138

fkugd2003 اخي ولا انت ايضا استعملت الطريقة المطلوبة وجدت الملف DataDataSet.xsd فعرفت انك استعملت الربط المنصل dataset dataadpter ولماذا قدمت لك الكلاس اذن .

يا اخوة اعلم ان طريقة الربط المنفصل او في الدلفي نت سحب مكونات على الفورم هي الاسهل نعم لكن نحن نمهد انفسنا بالتعامل مع البرمجية الشيئه لذاك عقدت الامور بطلبي لكن ليس الهدف ان شاء المشروع فقط بل تعمل طرق اخري في البرمج عن نفسي استعمل انشاء المكونات برمجيا الا عند الاضافة والتغير او في الطباعة وكنت استعمل مكونات adotable و كويري في العرض لكن سياتي يوم لا نستطيع فعل ذلك و خاصة في 3 طبقات و النت هبرنت التي تعتم عليها وغيرها من الفرم ورك لذلك اطلب من الاخوة الالتزام بالمطلوب .

وان كان هناك طلب من الاغلبية بان نبرمج بالطرق البسيطه و السيريع ليس عندي مانع ايضا

شكرا

#139

اخي طلال في المرفق مثال ارجوا ان تكمل عليه

اعلمكم ان هذه الطريقة لم استعملها قط بالدلفي سابقا وكنت امزج بن البرمجة بالمكونات و انشاء مكونات برمجبا ولكن مع الدلفي نت سيعطين الفرصة لاستخدام OOP

و بالطبع البريسم و كطما قلت سابقا انها ستفيدنا في برمجة المواقع مع الاسبي نت ايضا

شكرا

اري لحد الان سوي الاخ علي الذي اتبع الخطوات بشكل جيد ارجوا ان تكمل يا عليلوا كود وضع رمز المؤسسة و كود عرض التسجيلا ت قبل عمليه التغير .

شكرا

يوم السبت ساجمع الاكواد ونختار الكود الجيد لنبدأ مرحلة جديدة

--------------------------------------------------------------

اخي محمد اين انت .. :resentful:

--------------------------------------------------------------

شوي حماس في العمل ياجماعة خلينا نكون من اواءل المحترفين في البريسم ان شاء الله .

Gpharm.rar

#140

اجراء تغيير الممول ارجوا اضافته الى القاعدة واضافة الحقول الناقصة

set ANSI_NULLS ON set QUOTED_IDENTIFIER ON GO
-- =============================================
-- Author:        <Author,,Name>
-- Create date: <Create Date,,>
-- Description:    <Description,,>
-- =============================================
ALTER procedure [dbo].[UpadteFournisseurProc] 
(
@Nom       varchar(50),
@Telephone varchar(20),
@Adresse   varchar(50),
@Email     varchar(50),
@SiteWeb   varchar(50),
@Situation varchar(10),
@Remarques varchar(50)
)
AS BEGIN UPDATE Fournisseurs 
   SET Nom=@Nom,Telephone=@Telephone,Adresse=@Adresse,Email=@Email,SiteWeb=@SiteWeb,Situation=@Situation,Remarques=@Remarques
END
#141

متأسف اخ زكيري ربما لم اكن فاهم للمطلوب ذلك الوقت ساقوم بأعادة كتابة البرنامج يديويا و اعود

//---------------------//

ارجو ان اكون صحيحا هذه المرة :D

جاري العمل على اضافة الممول

وقد قمت بتحويل الكلاس المكتوبة ببرايسم الى سي شارب و ارجو تصحيح الكود في حالة وجود اخطاء

هذه محاولتي و ارجو ان لا اكون مخطئا :cry:

using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;

namespace GestionPharmacie
{    
    class SqlClient
    {        
        private int _iNbRows;
        private int _iNbCols;
        private SqlConnection _sqlCnx;
        private SqlCommand _sqlCmd;
        private SqlDataReader _sqlReader;
        private SqlTransaction _sqlTransac;
        private SqlDataAdapter _sqlDA;
        private DataSet _sqlDs;

        public SqlClient()
        {
            _iNbRows    = 0;
		    _iNbCols    = 0;
		    _sqlCnx     = new SqlConnection();
		    _sqlCmd     = new SqlCommand();
		    _sqlReader  = null;
		    _sqlDs      = new DataSet();           
        }

        public bool Connect(string sConnection)
        {            
            try {
                _sqlCnx.ConnectionString = sConnection;
                _iNbCols = 0;
                _iNbRows = 0;
                _sqlCnx.Open();
                return true;
            }catch(Exception){
                return false;
            }
        }

        public int NbRows()
        {
            return _iNbRows;
        }

        public int NbCols()
        {
            return _iNbCols;
        }

        public SqlTransaction SqlTrans()
        {
            return _sqlTransac;
        }

        public DataSet SqlDs()
        {
            return _sqlDs;
        }

        public SqlConnection SqlCnx()
        {
            return _sqlCnx;
        }

        public bool Disconnect()
        {            
            try {
                _sqlCnx.Close();
                return true;
            }
            catch (Exception) {
                return false;
            }
        }

        public void DemarrerTransaction()
        {
            _sqlTransac         = _sqlCnx.BeginTransaction();
		    _sqlCmd.Transaction = _sqlTransac;
        }

        public void ValiderTransaction()
        {
            _sqlTransac.Commit();
        }

        public void AnnulerTransaction()
        {
            _sqlTransac.Rollback();
        }

        public Object getQueryResult(string sSQL)
        {
            Object[,] oArrResult;
            int i;

            _sqlCmd     = new SqlCommand(sSQL, _sqlCnx);
            _sqlReader  = null;
            _sqlReader  = _sqlCmd.ExecuteReader();
            _iNbRows    = 0;
            _iNbCols    = _sqlReader.FieldCount;
            // Initialisation du tableau de retour
            while (_sqlReader.Read()){
              _iNbRows++;
            } 

            oArrResult = new Object[_iNbRows,_iNbCols];
            _sqlReader.Close();

            // Remplissage du tableau de retour
            try {
                _sqlReader = _sqlCmd.ExecuteReader();
                i = 0;                
                /*while (_sqlReader.Read()) {
                    for (int j = 0; j < _iNbCols; j++) {
                        if (! _sqlReader.IsDBNull(j))

                            //oArrResult[i,j] = _sqlReader.GetSqlValue(j)
                        else                          
                            //oArrResult[i,j] = "";
                    }
                }*/

                _sqlReader.Close();
                _sqlCmd = null;
                _sqlReader = null;
                return oArrResult;
            }
            catch (Exception) {
                return null;
            }
        }

        public string Remplir(string sSQL)
        {
            string empty = "";

            _sqlDs.Clear();
            try {
                _sqlDA = new SqlDataAdapter(sSQL,_sqlCnx);
			    _sqlDA.Fill(_sqlDs);
			    _sqlDA.Dispose();
			    return empty;
            }catch(Exception){
                return null;
            }

        }

        public bool nonQueryOrder(string sSQL)
        {    
            _sqlCmd =new SqlCommand(sSQL, _sqlCnx);
            try {
                _sqlCmd.ExecuteNonQuery();
                return true;
            }
            catch (Exception) {
                return false;
            }
            _sqlCmd = null;
        }


    }
}

GestionPharmacie.rar

تم تعديل هذه المشاركة بواسطة fkugd2003 في 26 مارس 2009 في 06:00

العمل كثير و الوقت قليل أعاننا الله

seo zen SEO Enlightment amazon danbo

#142

في هذه الرابطة تجد مصدر هذه الكلاس

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

http://files.codes-sources.com/fichier.asp...assSqlClient.cs

#143

لا زلت متأخر عنكم كثير اخوي زكيري .

أخيرا اشتغل البروجكت ولا اعلم اين المشكلة .

اليوم اقرأ الكود كاملا ، وساحاول اللحاق بكم ، ربما سأبدأ معكم في المرحلة الثانية ، لاني احتاج الى بعض الوقت لفهم ما قمتم بعمله .

تم تعديل هذه المشاركة بواسطة أبو محمـد في 26 مارس 2009 في 12:07

#144

اخي زكيري لم تخبرني اذا كنت اسير في الطريق الصحيح ام لا

اما بخصوص الكلاس فانا في خارج المنزل حاليا عندما اصل للمنزل اراجعها و قد قمت ببعض التعدبلات للكلاس التي ارفقتها عندما انتهي منها سوف ارسلها ان شاء الله

العمل كثير و الوقت قليل أعاننا الله

seo zen SEO Enlightment amazon danbo

#145

السلام عليكم

اقتباس
خي زكيري لم تخبرني اذا كنت اسير في الطريق الصحيح ام لا

من حيث النتيجه عملك جيد لكن من جهة المطلوب كان عليك استعمال الكلاس فقط

اري ان الحركة في المشروع بطيئة جدا و ربما اني اخطأت في كوني اخترت الطريقة المتوسطة ليست الصعبه لانه هناك ما اصعب بكثير كان عليا ان استعمل في هذا المشروع الاول الاتصال المنفصل مع الداتا ست و السحب للمكونات الطريقة السهلة و في المشاريع القادمت نستعمل الاتصال المنفصل .

ما رايكم هل نغير ام نتابع

اما عن الطريقة المثلى في التعامل مع قواعد البيانات هي N-tier مع استعمال NHibernate وساتي يوم ان شاء الله اتعلمها حينها اعلمك اياها ان شاء الله

وهناك مثال وجدته و ستم دراسته عن قريب .

تم تعديل هذه المشاركة بواسطة زكيري عبد العالي في 26 مارس 2009 في 23:51

#146

السلام عليكم , بقي كيف اصل الى الاجراء المخزن في sqlserver

var

_sqlCmd:TADOStoredProc;

O_SqlClient:TF_SqlClient;

BEGIN

#147

لا ابق في هذه الطريقة اخي زكيري لانها لحد الان اجبرتني ان اقرأ الكثير و امضي الليل ساهرا :D

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

اقتباس
من حيث النتيجه عملك جيد لكن من جهة المطلوب كان عليك استعمال الكلاس فقط

اري ان الحركة في المشروع بطيئة جدا و ربما اني اخطأت في كوني اخترت الطريقة المتوسطة ليست الصعبه لانه هناك ما اصعب بكثير كان عليا ان استعمل في هذا المشروع الاول الاتصال المنفصل مع الداتا ست و السحب للمكونات الطريقة السهلة و في المشاريع القادمت نستعمل الاتصال المنفصل .

ما رايكم هل نغير ام نتابع

اما عن الطريقة المثلى في التعامل مع قواعد البيانات هي N-tier مع استعمال NHibernate وساتي يوم ان شاء الله اتعلمها حينها اعلمك اياها ان شاء الله

وهناك مثال وجدته و ستم دراسته عن قريب .

لا ابق في هذه الطريقة اخي زكيري لانها لحد الان اجبرتني ان اقرأ الكثير و امضي الليل ساهرا :D

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

اما بخصوص المشروع فقد استعملت الكلاس فقط فأين وجدت اني لم استعملها ؟؟؟؟

قمت باضافة ميثود جديدة الى كلاس الاتصال لتبسيط تنفيذ دوال سيكول

public bool ExecuteStoredProcedure(string sSqlCommand, params ParametersDescriptor[] list) {
			_sqlCmd = new SqlCommand(sSqlCommand, _sqlCnx);
			_sqlCmd.CommandType = CommandType.StoredProcedure;

			//now retreive parameters

			for (int i = 0; i < list.Length; i++) {
				_sqlCmd.Parameters.Add(
					((ParametersDescriptor) list).Parameter,
					((ParametersDescriptor) list).DBType,
					((ParametersDescriptor) list).Size
					);	
			}

			ParametersDescriptor p;
			for (int i = 0; i < list.Length;i++ )
			{
				p = ((ParametersDescriptor)list);
				if (p.DBType == SqlDbType.Image){
					_sqlCmd.Parameters[p.Parameter].Value = p.binaryValue;
				}
				else{
					_sqlCmd.Parameters[p.Parameter].Value = p.Value;
				}

			}

			try
			{
				_sqlCmd.ExecuteNonQuery();
				return true;
			}
			catch (Exception)
			{
				return false;
			}
			_sqlCmd = null;
		}

تقوم بارسال الباراميتر في كائن ParametersDescriptor و هذا تعريفه

using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;

namespace GestionPharmacie
{
	public class ParametersDescriptor
	{
		public string Parameter;
		public SqlDbType DBType;
		public int Size;
		public string Value;		

		public ParametersDescriptor(string _parameter, SqlDbType _dbType, int _size, string _value)
		{
			Parameter = _parameter;
			DBType = _dbType;
			Size = _size;
			Value = _value;
		}	   
	}
}

و هذه طريقة للاستعمال

private void button1_Click(object sender, EventArgs e)
		{

			GestionPharmacie.SqlClient o_SqlClient = new GestionPharmacie.SqlClient();
			o_SqlClient.Connect(ConnStr);

			ParametersDescriptor[] listParameters = 
			new ParametersDescriptor[] {
				new ParametersDescriptor("@Nom",		SqlDbType.VarChar, 50, txtNom.Text),
				new ParametersDescriptor("@Telephone",  SqlDbType.VarChar, 50, txtTelephone.Text),
				new ParametersDescriptor("@Adresse",	SqlDbType.VarChar, 50, txtAdresse.Text),
				new ParametersDescriptor("@Email",	  SqlDbType.VarChar, 50, txtEmail.Text),
				new ParametersDescriptor("@SiteWeb",	SqlDbType.VarChar, 50, txtSiteWeb.Text),
				new ParametersDescriptor("@Situation",  SqlDbType.VarChar, 10, cbSituation.Text),
				new ParametersDescriptor("@Remarques",  SqlDbType.VarChar, 50, txtRemarques.Text)				
			};

			o_SqlClient.ExecuteStoredProcedure("AddFournisseurProc",listParameters);

			o_SqlClient.Disconnect();
			this.Close();

		}

هل من تصحيح؟؟ :D

تم تعديل هذه المشاركة بواسطة fkugd2003 في 27 مارس 2009 في 04:27

العمل كثير و الوقت قليل أعاننا الله

seo zen SEO Enlightment amazon danbo

#148

جيد بقي الا ارفاق المشروع كي اطبقه و اري النتيجة

ياخ محمد وطلال و عادل و ..اين انتم

اخ على عنده جنازة و سيلحق بنا قريبا .

اين المحاولات .

ساقوم اليوم ان شاء الله باغلاق المرحة 1.1 وهي الممول ارجوا ان تقدموا اليوم كل ما لديكم و ساضع الكود كاملا وكلنا يكمل عليه و لا يكمل على اصدار اخر (نقطه نضام)

شكرا .

#149

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

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

في المرفقات ما قمت بعمله حاليا

اضافة الصور تعمل جيدا لكن احتاج الى تعديل DataGridView rows لكي تصير اكبر قليلا و تصغير الصورة على شكل thumbnail لكي تظهر بصورة جيدة

جاري العمل على التعديل و الاضافة للممول

GestionPharmacie.rar

العمل كثير و الوقت قليل أعاننا الله

seo zen SEO Enlightment amazon danbo

#150

sqlCmd:TADOStoredProc

البرنامج يتوقف عندي هنا . كيف يمكن تعريف الاجراء المخزن في قاعدت البيانات

تم تعديل هذه المشاركة بواسطة طلال بلال في 28 مارس 2009 في 12:09

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