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

كيفية ارسال بيانات من desktop application الى web application و بالعكس

بدأه ayash في 29 يوليو 2010 · 15 رد · 1,091 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

السلام عليكم

اخواني في المنتدى اذا ممكن المساعدة في كيفية ارسال بيانات من desktop application الى web application و بالعكس

مثلا عدي textbox في desktop application بكتب فيه اي اشي وبضغط على الزر بظهرو في textbox في صفحة الموقع و بالعكس

اذا ممكن افادتي وشكرا لكم جزيلا

291964_260506123967115_206850989332629_1001538_45132_n.jpg

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

#2

يمكنك بإستخدام Query String Parameter

System.Diagnostics.Process.Start("www.yoursite.com/test.aspx?id=5");

حيث يتم إستقبال متحول id في صفحة test.aspx

this.Request.QueryString["id"]

بالتوفيق

1
#3

مشكور اخي على المرور

ولكن هذه العملية تمرر للREFERENCE يعني لما ابعث بيانات بفتحلي صفحة جديدة

كيف يدي اعمله انو ما يفتح صفحة كل ما بدي ابعث يعني اتظل الصفحة للموقع ثابتة وانا ابعث

لانو بدي احط LOOP تبعث كل ثاية جملة

هل بنفع في هذة الحالة

وكيف بدي اعملها بالعكس من WEB -->APPLICATION

وشكرا اخي وغلبتك معاي

تم تعديل هذه المشاركة بواسطة ayash في 29 يوليو 2010 في 22:36

291964_260506123967115_206850989332629_1001538_45132_n.jpg

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

#4

الويب تطبيق يعمل على السيرفر ، بعث البيانات يتم بهذه الطريقة فقط ، إلا إذا أحببت تطوير WebSerivce تقوم بإستدعائها من قبل تطبيق Desktop (أو الويب ) و ترسل لها بيانات تخزن بطريقة ما ، ثم يتم إستدعاء هذه Web Service من جديد بوساطة تطبيق الويب (أو تطبيق desktop ) للحصول على المعلومات التي تم إرسالها من الطرف الثاني ...

تذكر أخي الكريم أنك تستخدم طرفين مختلفين و ليس القضية مجرد Process تبعث بيانات لProcess آخر ...

بالتوفيق

#5

مشكور اخي

بس اخي سؤال اذا بدي استخدم الشبكات في الموضوع كيف

ايش بعمل

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

وشكرا لك اخ حسام فيصل

ولمنتدى الفريق العربي

تم تعديل هذه المشاركة بواسطة ayash في 30 يوليو 2010 في 13:46

291964_260506123967115_206850989332629_1001538_45132_n.jpg

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

#6
    ProcessStartInfo dd = new ProcessStartInfo("iexplore.exe", "www.yoursite.com/test.aspx?id=5");
            dd.CreateNoWindow = false;
            dd.WindowStyle = ProcessWindowStyle.Hidden; 


            Process c= Process.Start(dd);
            Thread.Sleep(1000); 
            c.Kill();

إخفاء النافذة يتم عبر WindowStyle ، أما Thread.Sleep فستتخدم للإنتظار ثانية واحدة لكي تتم عملية الطلب ، قبل أن يتم إغلاق Process بوساطة Kill

و كل شي نستخدمه هنا هو "شبكات " :lol:

بالتوفيق

#7

مشكور اخ حسام على المتابعة

بس اخي الكود لما يرسل الرقم 5 زي ما انتا واضع في desktop app

ولما استقبله في web app كالتالي

lTextBox1.Text = this.Request.QueryString["y"].ToString();

بجيلي error انو لايوجد قيمة null

اذا ممكن كيف التغلب على هلerror

وشكرا لك ولمنتدى الفريق العربي

291964_260506123967115_206850989332629_1001538_45132_n.jpg

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

#8

أولاً : هل فعلاً إسم المتحول y ? لاحظ أنني وضعت id في مثالي فيتم الإستقبال على أنه :

lTextBox1.Text = this.Request.QueryString["id"].ToString();

ثانياً : لا تنفع معك هذه الطريقة في حالة إستخدامك لكود إخفاء النافذة ، لأنه بالطبع يتم إنهاء Request بعد 1 ثانية ولن يتم تخزين Query Parameter لإستخدامه فيما بعد ...

بالتوفيق

#9

مشكور احي

الطريقة نجحة

بس لما ارسل من ال desktop app الى الموقع

بضل يفتح صفحة جديدة

يعني كل ما بحط في الtextbox جملة و بضغط على الbutton مشان ارسل كل ضغطة زر بفتح صفحة جديدة

كيف بدي اخلية ما يفتح صفحة جديدة

هي كود الweb

using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        TextBox1.Text = this.Request.QueryString["id"].ToString();
    }
}

وخي كود الdesktop

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Diagnostics;
using System.Threading;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {


            ProcessStartInfo dd = new ProcessStartInfo("http://localhost:51384/WebSite1/Default.aspx?id="+textBox1.Text);
            dd.CreateNoWindow = false;

            dd.WindowStyle = ProcessWindowStyle.Hidden;


            Process c = Process.Start(dd);
            Thread.Sleep(4000);
            c.Kill();

        }
    }
}

وشكرا جزيلا وغلبتك معاي اكثير

291964_260506123967115_206850989332629_1001538_45132_n.jpg

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

#10

إستخدم الكود في مشاركتي رقم 6

#11
م. حسام فيصل كتب:

إستخدم الكود في مشاركتي رقم 6

احي مني مستعملها

؟؟؟؟

291964_260506123967115_206850989332629_1001538_45132_n.jpg

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

#12

لاحظ التغيير في السطر الأول :

  ProcessStartInfo dd = new ProcessStartInfo("iexplore.exe", "www.yoursite.com/test.aspx?id=5");

:wink:

#13

مرحبة اخي

ما نفع اخي

شوف الصورة يمكن اتوضح اكثر المطلوب

ما بدي يطلعلي كل ما بدي اضغط على الزر نافذة جديدة بدي اظل العملية تظهر في نافذة واحدة

post-157256-054716400 1280588674_thumb.j

المرفقات
d.jpg

تم تعديل هذه المشاركة بواسطة ayash في 31 يوليو 2010 في 18:07

291964_260506123967115_206850989332629_1001538_45132_n.jpg

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

#14

هذا مثال مجرب عندي :

يقوم بإنشاء نافذة للإستدعاء ، حيث يتأكد أولاً أنه لا توجد نافذة سابقة ، فإن وجدت يقوم بعملية "إغلاق" Kill لها قبل عملية إستدعاء آخر :

  Process pageProcess;
        private void button1_Click(object sender, EventArgs e)
        {
            ProcessStartInfo processInfo = new ProcessStartInfo("iexplore.exe", "www.yoursite.com/test.aspx?id=5");
            processInfo.CreateNoWindow = false;

            if (pageProcess != null)
                pageProcess.Kill();
            pageProcess = Process.Start(processInfo);


        }

هذا أخر حل بالنسبة لي ، إذا لم تخدمك الطريقة فنصيحتي أن تلجأ لطريقة Web Services أو تقوم بوضع أداة Webbrowserلديك في الفورم وعن طريقها تقوم بعملية الإستدعاء إلا إذا كان أحد الأخوة لديه طريقة أخرى ..

بالتوفيق

تم تعديل هذه المشاركة بواسطة م. حسام فيصل في 1 أغسطس 2010 في 00:18 — السبب: إضافة Web Browser

#15

يسلمو احي وغلبتك معاي

291964_260506123967115_206850989332629_1001538_45132_n.jpg

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

#16

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

إخواني ليه ما تستخدموا قاعده بيانات بين ال Web application and desktop application

بحيث تكون موجوده على ال Server و يتم التعديل و القراءه منها من كلا الطرفين ؟

1

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