PDA

View Full Version : سوال: چگونگي گرفتن ديتا از يك برنامه ديگر و وارد كردن به وب سرويس و بعد هم ديتابيس!!



bamzi software
یک شنبه 30 آبان 1389, 18:16 عصر
سلام و خسته نباشيد

من يك اسكريپت به زبان mql4 دارم كه ديتايي رو با اجراي url به سمت وب سرويس ميفرستد..

حالا من مي خوام اون وب سرويس رو دوباره بنويسم:

اين وب سرويس بايد ديتاها رو بگيره و در ديتابيس وارد كند.
و يك اسكريپت ديگر mql4 ،ديتارو از وب سرويس ميگيره براي نمايش..

من برنامه نويسي وب سايت انجام دادم تا حال،اما وب سرويس نه..

نميدونم چقدر متفاوت هستند!!

در وي‍ژوال استوديو يك asp.net web service ايجاد كردم..
يك فايل Service.asmx ايجاد شده..

از اينجا به بعد رو نميدونم كه در كجا بايد كد نويسي كنم و چطور اون ديتاها رو get كنم .

ممنونم ميشم راهنماييم كنيد.

bamzi software
سه شنبه 02 آذر 1389, 12:14 عصر
تا يه جاهايي پيش بردم
يك سوال دارم:
چطوري ميتونم پارامترهاي موجود در url‌ رو بگيرم؟
با c# دارم كد مينويسم.

bamzi software
شنبه 06 آذر 1389, 16:58 عصر
چرا وقتي اين function انجام ميشه پارامتر هاش در url قرار نميگيره؟


public string zakhire(string s,string d)
{

string sql = " insert into FX_Forecast2 (Symbol,DateTime) values( '"+s+"',"+d+")";

OpenDb();

cmd = new SqlCommand(sql, con);
cmd.ExecuteNonQuery();

con.Close();
return sql;
}
چه دليلي باعثش ميشه؟

bamzi software
یک شنبه 07 آذر 1389, 18:00 عصر
بعد از اجراي تابع در url فقط نام تابع قرار ميگيره..!!


http://localhost:..../WebS-t/Default.asmx/zakhireچرا پارامترهاي s و d رو نشون نميده؟

كسي جواب نميده؟؟

vof.ir
دوشنبه 08 آذر 1389, 23:18 عصر
سلام.
اول اینکه این تابع شما کجا مقدار بر می گرداند؟
دوم ، اگر می خواهید متغیر ها را از داخل URL بخونید می تونید از QueryString استفاده کنید.

bamzi software
سه شنبه 09 آذر 1389, 16:26 عصر
اين كد ها رو در صفحه asmx (وب سرويس) و در webmethod نوشتم.
بعد از اجراي تابع صفحه جديد باز ميشه و نتيجه رو در اون صفحه نشون ميده.

در صفحه asmx امكان نوشتن request.querystring وجود نداره متاسفانه.

حالا من مي خوام بدونم چرا وقتي نتيجه رو در صفحه جديد برميگردونه در url فقط نام تابع رو مينويسه؟؟

bamzi software
یک شنبه 21 آذر 1389, 11:03 صبح
چرا كسي جواب نميده؟!!!!

براي ارسال پارامتر به آدرس بار بايد كد خاصي بنويسم؟

bamzi software
دوشنبه 27 دی 1389, 10:41 صبح
كلا موضوع اين هست كه من قراره از چنين يو آر ال اي استفاده كنم:
مي خوام پارامترهاشو بگيرم و در ديتابيس واردكنم.


http://aaaa.com/Default.asmx/zakhire?Symbol=+S+&A=+d;اين يو آر ال هم از يك نرم افزار ديگه صدا زده ميشه(mql4).

حالا مي خوام اين يوآرال رو بسازم ..
براي همين يك وب سرويس ساختم،يك صفحه به نام 'Default.asmx' و يك متد در webmethod به نام 'zakhire'..


[WebMethod]
public void zakhire(string s,string d)
{

string sql = " insert into FX_Forecast2 (Symbol,A) values( '"+s+"','"+d+"')";

OpenDb();

cmd = new SqlCommand(sql, con);
cmd.ExecuteNonQuery();

con.Close();

}فكر ميكردم كه با تست اين صفحه ميتونم اين يوآرال رو در آدرس بار ببينم،اما نشد و فقط اين لينك ظاهر شد:

http://localhost:..../WebS-t/Default.asmx/zakhireبايد چكار كنم تا بتونم اون يوآرال رو بسازم؟

alonemm
دوشنبه 18 بهمن 1389, 12:14 عصر
سلام :
برای بدست آوردن مقادیری که از QueryString فرستادید:
مثل از آدرس :
www.majid.com/m.aspx?majid=alone (http://www.majid.com/m.aspx?majid=alone)


Request.QueryString["majid"].ToString();


و میتونید برای ارسال این رشته خودتون بسازید و مقادیر رو جای گزین کنید و باز گردونید به عنوان رشته پاسخ تابع شما.

bamzi software
چهارشنبه 20 بهمن 1389, 16:46 عصر
دوست عزيز قبل از اينكه من بخوام از مقادير پارامترهاي رشته استفاده كنم اول بايد اين رشته رو بسازم.

سوال من اينه كه چطور مي تونم رشته اي رو بسازم كه در اون نام تابع به همراه پارامترهاش قرار بگيرند؟؟

alonemm
پنج شنبه 21 بهمن 1389, 11:13 صبح
سلام:
برای ساختن رشته :


string urls = "www.majid.com/page.aspx?NameMetod=" + sum + "&&P1=" + p1 + "&&P2=" + p2 + "";

حالا میتونید با جای گزاری متغییر ها که نام متد و پارامتر های اون توش هست در صفحه بعد این مقادیر رو از کوئری استرینگ بخونید و داخل متودتون جای گزین کنید.

bamzi software
یک شنبه 24 بهمن 1389, 10:04 صبح
تونستم جواب سوالم رو پيدا كنم.

جواب رو براي كساني كه با وب سرويس كار ميكنند و مثل من به اين مشكل برخوردند ميذارم:

اين كد رو در فايل "Web.Config" داخل قسمت "system.web" وارد كنيد:


<webServices>

<protocols>

<add name="HttpGet"/>

<add name="HttpPost"/>

</protocols>

</webServices>

موفق باشيد.