majnun
یک شنبه 02 آبان 1389, 19:23 عصر
سلام خدمت دوستان محترم
یه برنامه خیلی ساده برای ثبت اطلاعات در بانک و خوندن اون بوسیله جاوا اسکریپت و وب سرویس ها نوشتم برای نمونه و یادگیری امیدوارم بدردتون بخوره
این فیلدهای بانک اطلاعاتی هستش
id
name
lname
mobile
بعد اومدم یه کلاس ساختم به این صورت با این فیلدها و پروپرتی ها :
using System;
using System.Data;
using System.Configuration;
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;
using System.Data.SqlClient;
using System.Collections.Generic;
using System.Web.Services;
using System.Web.Services.Protocols;
/// <summary>
/// Summary description for student
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.Web.Script.Services.ScriptService]
public class booknumber
{
private int id;
public int Id
{
get { return id; }
set { id = value; }
}
private string name;
public string Name
{
get { return name; }
set { name = value; }
}
private string lname;
public string Lname
{
get { return lname; }
set { lname = value; }
}
private string moile;
public string Moile
{
get { return moile; }
set { moile = value; }
}
public booknumber()
{
//
// TODO: Add constructor logic here
//
}
}
بعدش باید یک وب سرویس به پروژه اضافه کنیم
هنگام اضافه شدن وب سرویس درون پروژه یک کلاس به نام اون وب سرویس درون پروژه قرار میگیره
بعد باید درون کلاسی که توسط وب سرویس ایجاد شده کدهای خواندن و نوشتن از دیتابیس را بنویسیم
توجه کنید که توابع دورن این کلاس باید به صورت وب متد تعریف شود که توسط وب سرویس قابل شناسایی باشند و حتما باید ورودی هایی از نوع استرینگ داشته باشند زیرا شما تنها قادر خواهید بود که استرینگ را توسط وب سرویس ها ارسال کنید.
در ضمن کدی درون این کلاس وجود دارد که در ابتدا به صورت کامنت می باشد و باید آنرا فعال کنید
کد :
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
[System.Web.Script.Services.ScriptService]
با توحه به توضیحات بالای آن متوجه میشویم برای اینکه وب سرویس بتونه این کلاس رو از طریق صفحات وب صدا بزنه باید این خط از حالت کامنت خارج بشه ...
کد درون کلاس وب سرویس :
using System;
using System.Collections;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Xml.Linq;
using System.Data.SqlClient;
using System.Configuration;
using System.Data;
using System.Collections.Generic;
/// <summary>
/// Summary description for booknumberservic
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
[System.Web.Script.Services.ScriptService]
public class booknumberservic : System.Web.Services.WebService {
public booknumberservic () {
//Uncomment the following line if using designed components
//InitializeComponent();
}
[WebMethod]
public string HelloWorld() {
return "Hello World";
}
[WebMethod()]
public int insert_booknumber(string aname, string alname, string amobile)
{
SqlConnection con = new SqlConnection(ConfigurationManager.AppSettings.Get ("con_str"));
SqlCommand cmd = new SqlCommand("insert_booknumber", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@name", aname);
cmd.Parameters.AddWithValue("@lname", alname);
cmd.Parameters.AddWithValue("@mobile", amobile);
cmd.Connection = con;
con.Open();
int res = 0;
try
{
res = cmd.ExecuteNonQuery();
con.Close();
return res;
}
catch
{
con.Close();
return res;
}
}
[WebMethod()]
public List<booknumber> select_booknumber()
{
SqlConnection con = new SqlConnection(ConfigurationManager.AppSettings.Get ("con_str"));
SqlCommand Cmd = new SqlCommand("Select_booknumber", con);
Cmd.Connection = con;
Cmd.CommandType = CommandType.StoredProcedure;
// Cmd.Parameters.AddWithValue("@id", int.Parse(id));
con.Open();
SqlDataReader dr = Cmd.ExecuteReader();
if (!dr.HasRows)
{
dr.Close();
return null;
}
else
{
List<booknumber> List = new List<booknumber>();
while (dr.Read())
{
booknumber temp= new booknumber();
temp.Name = dr.GetString(0);
temp.Lname = dr.GetString(1);
temp.Moile = dr.GetString(2);
List.Add(temp);
}
return List;
dr.Close();
}
}
}
خب حالا باید درون صفحه یک اسکریپت منیحر قرار دهیم و وب سرویس خودمان را به آن معرفی کنیم
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="True">
<Services>
<asp:ServiceReference Path="wbeservices/booknumberservic.asmx" />
</Services>
</asp:ScriptManager>
حالا باید به وسیله کدهای جاوااسکریپت از وب سرویس استفاده و مقدار را درون بانک ارسال یا از بانک بخوانیم
تابع زیر دستور اینسرت درون بانک را انجام میدهد به این صورت که مقادیر تکست باکس ها را گرفته و به وب سرویس تحویل میدهد و مقداری را از وب سرویس گرفته تا متوجه اتمام موفقیت آمیز دستور اینسرت شود
function pageLoad()
{
booknumberservic.select_booknumber(suc1);
}
function Button1_onclick()
{
name=document.getElementById("TextBox1").value;
lname=document.getElementById("TextBox2").value;
mobile=document.getElementById("TextBox3").value;
if (name!="",lname!="",mobile!="")
{
booknumberservic.insert_booknumber(name,lname,mobi le,suc);
}
else
{
alert('اطلاعات را به صورت کامل وارد کنید. فیلدی نباید خالی باشد');
}
}
توجه کنید در کد زیر
booknumberservic.insert_booknumber(name,lname,mobi le,suc);
ما 4 پارامتر درون پرانتز نوشته ایم در صورتی که تابع وب متد ما درون کلاس وب سرویس 3 پارامتر میخواهد
در حقیقت این پارامتر آخر معرفی تابعی میباشد که قرار است خروجی ای که کلاس وب سرویس به ما میدهد را در آن نمایش دهیم
این کلاس به این صورت تعریف شده است
function suc(res)
{
if (res==1)
{
alert("ثبت اطلاعات با موفیت صورت گرفت");
booknumberservic.select_booknumber(suc1);
document.getElementById("TextBox1").value="";
document.getElementById("TextBox2").value="";
document.getElementById("TextBox3").value="";
}
else
{
alert("ثبت اطلاعات با خطا مواجه گردید");
}
}
اکنون زمان آن فرا رسیده تا مقادیر ثبت شده را از بانک خوانده و نمایش دهیم
برای این منظور ما در فرم لود صفحه (سمت کلاینت ) تابعی از وب سرویس را فراخوانی کرده و لیستی از اطلاعات را از آن دریافت میکنیم
کد فرم لود :
function pageLoad()
{
booknumberservic.select_booknumber(suc1);
}
کد تابع برای گرفتن اطلاعات ارسالی توسط وب سرویس:
function suc1(res)
{
array=res;
try
{
if (array[count].Name==null )
{
//
}
}
catch(e)
{
alert('به انتهای رکورد ها رسیده اید');
count-=1;
}
TD_name.innerHTML="نام = "+array[count].Name;
TD_Lname.innerHTML="نام خانوادگی = "+array[count].Lname;
TD_mobile.innerHTML="شماره موبایل = "+array[count].Moile;
}
و دو رویداد کلیک برای حرکت در لیست گرفته شده از وب سرویس:
var count=0;
function Button3_onclick() {
count=count+1;
suc1(array);
}
function Button2_onclick() {
if (count==0)
{
alert('به ابتدای رکورد ها رسیده اید');
}
else
{
count-=1;
suc1(array);
}
}
و در اخر کدهای تگ اسکریپت را به طور کامل میزارم که کاملا متوجه بشد:
<script language="javascript" type="text/javascript">
// <!CDATA[
var name="";
var lname="";
var mobile="";
var array;
function pageLoad()
{
booknumberservic.select_booknumber(suc1);
}
function Button1_onclick()
{
name=document.getElementById("TextBox1").value;
lname=document.getElementById("TextBox2").value;
mobile=document.getElementById("TextBox3").value;
if (name!="",lname!="",mobile!="")
{
booknumberservic.insert_booknumber(name,lname,mobi le,suc);
}
else
{
alert('اطلاعات را به صورت کامل وارد کنید. فیلدی نباید خالی باشد');
}
}
function suc(res)
{
if (res==1)
{
alert("ثبت اطلاعات با موفیت صورت گرفت");
booknumberservic.select_booknumber(suc1);
document.getElementById("TextBox1").value="";
document.getElementById("TextBox2").value="";
document.getElementById("TextBox3").value="";
}
else
{
alert("ثبت اطلاعات با خطا مواجه گردید");
}
}
var count=0;
function Button3_onclick()
{
count=count+1;
suc1(array);
}
function Button2_onclick()
{
if (count==0)
{
alert('به ابتدای رکورد ها رسیده اید');
}
else
{
count-=1;
suc1(array);
}
}
function suc1(res)
{
array=res;
try
{
if (array[count].Name==null )
{
//
}
}
catch(e)
{
alert('به انتهای رکورد ها رسیده اید');
count-=1;
}
TD_name.innerHTML="نام = "+array[count].Name;
TD_Lname.innerHTML="نام خانوادگی = "+array[count].Lname;
TD_mobile.innerHTML="شماره موبایل = "+array[count].Moile;
}
// ]]>
</script>
فایل برنامه رو ضمیمه میکنم میتونید دریافت کنید
اگه سوالی یا مشکلی بود من در خدمتم
التماس دعا
یه برنامه خیلی ساده برای ثبت اطلاعات در بانک و خوندن اون بوسیله جاوا اسکریپت و وب سرویس ها نوشتم برای نمونه و یادگیری امیدوارم بدردتون بخوره
این فیلدهای بانک اطلاعاتی هستش
id
name
lname
mobile
بعد اومدم یه کلاس ساختم به این صورت با این فیلدها و پروپرتی ها :
using System;
using System.Data;
using System.Configuration;
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;
using System.Data.SqlClient;
using System.Collections.Generic;
using System.Web.Services;
using System.Web.Services.Protocols;
/// <summary>
/// Summary description for student
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.Web.Script.Services.ScriptService]
public class booknumber
{
private int id;
public int Id
{
get { return id; }
set { id = value; }
}
private string name;
public string Name
{
get { return name; }
set { name = value; }
}
private string lname;
public string Lname
{
get { return lname; }
set { lname = value; }
}
private string moile;
public string Moile
{
get { return moile; }
set { moile = value; }
}
public booknumber()
{
//
// TODO: Add constructor logic here
//
}
}
بعدش باید یک وب سرویس به پروژه اضافه کنیم
هنگام اضافه شدن وب سرویس درون پروژه یک کلاس به نام اون وب سرویس درون پروژه قرار میگیره
بعد باید درون کلاسی که توسط وب سرویس ایجاد شده کدهای خواندن و نوشتن از دیتابیس را بنویسیم
توجه کنید که توابع دورن این کلاس باید به صورت وب متد تعریف شود که توسط وب سرویس قابل شناسایی باشند و حتما باید ورودی هایی از نوع استرینگ داشته باشند زیرا شما تنها قادر خواهید بود که استرینگ را توسط وب سرویس ها ارسال کنید.
در ضمن کدی درون این کلاس وجود دارد که در ابتدا به صورت کامنت می باشد و باید آنرا فعال کنید
کد :
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
[System.Web.Script.Services.ScriptService]
با توحه به توضیحات بالای آن متوجه میشویم برای اینکه وب سرویس بتونه این کلاس رو از طریق صفحات وب صدا بزنه باید این خط از حالت کامنت خارج بشه ...
کد درون کلاس وب سرویس :
using System;
using System.Collections;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Xml.Linq;
using System.Data.SqlClient;
using System.Configuration;
using System.Data;
using System.Collections.Generic;
/// <summary>
/// Summary description for booknumberservic
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
[System.Web.Script.Services.ScriptService]
public class booknumberservic : System.Web.Services.WebService {
public booknumberservic () {
//Uncomment the following line if using designed components
//InitializeComponent();
}
[WebMethod]
public string HelloWorld() {
return "Hello World";
}
[WebMethod()]
public int insert_booknumber(string aname, string alname, string amobile)
{
SqlConnection con = new SqlConnection(ConfigurationManager.AppSettings.Get ("con_str"));
SqlCommand cmd = new SqlCommand("insert_booknumber", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@name", aname);
cmd.Parameters.AddWithValue("@lname", alname);
cmd.Parameters.AddWithValue("@mobile", amobile);
cmd.Connection = con;
con.Open();
int res = 0;
try
{
res = cmd.ExecuteNonQuery();
con.Close();
return res;
}
catch
{
con.Close();
return res;
}
}
[WebMethod()]
public List<booknumber> select_booknumber()
{
SqlConnection con = new SqlConnection(ConfigurationManager.AppSettings.Get ("con_str"));
SqlCommand Cmd = new SqlCommand("Select_booknumber", con);
Cmd.Connection = con;
Cmd.CommandType = CommandType.StoredProcedure;
// Cmd.Parameters.AddWithValue("@id", int.Parse(id));
con.Open();
SqlDataReader dr = Cmd.ExecuteReader();
if (!dr.HasRows)
{
dr.Close();
return null;
}
else
{
List<booknumber> List = new List<booknumber>();
while (dr.Read())
{
booknumber temp= new booknumber();
temp.Name = dr.GetString(0);
temp.Lname = dr.GetString(1);
temp.Moile = dr.GetString(2);
List.Add(temp);
}
return List;
dr.Close();
}
}
}
خب حالا باید درون صفحه یک اسکریپت منیحر قرار دهیم و وب سرویس خودمان را به آن معرفی کنیم
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="True">
<Services>
<asp:ServiceReference Path="wbeservices/booknumberservic.asmx" />
</Services>
</asp:ScriptManager>
حالا باید به وسیله کدهای جاوااسکریپت از وب سرویس استفاده و مقدار را درون بانک ارسال یا از بانک بخوانیم
تابع زیر دستور اینسرت درون بانک را انجام میدهد به این صورت که مقادیر تکست باکس ها را گرفته و به وب سرویس تحویل میدهد و مقداری را از وب سرویس گرفته تا متوجه اتمام موفقیت آمیز دستور اینسرت شود
function pageLoad()
{
booknumberservic.select_booknumber(suc1);
}
function Button1_onclick()
{
name=document.getElementById("TextBox1").value;
lname=document.getElementById("TextBox2").value;
mobile=document.getElementById("TextBox3").value;
if (name!="",lname!="",mobile!="")
{
booknumberservic.insert_booknumber(name,lname,mobi le,suc);
}
else
{
alert('اطلاعات را به صورت کامل وارد کنید. فیلدی نباید خالی باشد');
}
}
توجه کنید در کد زیر
booknumberservic.insert_booknumber(name,lname,mobi le,suc);
ما 4 پارامتر درون پرانتز نوشته ایم در صورتی که تابع وب متد ما درون کلاس وب سرویس 3 پارامتر میخواهد
در حقیقت این پارامتر آخر معرفی تابعی میباشد که قرار است خروجی ای که کلاس وب سرویس به ما میدهد را در آن نمایش دهیم
این کلاس به این صورت تعریف شده است
function suc(res)
{
if (res==1)
{
alert("ثبت اطلاعات با موفیت صورت گرفت");
booknumberservic.select_booknumber(suc1);
document.getElementById("TextBox1").value="";
document.getElementById("TextBox2").value="";
document.getElementById("TextBox3").value="";
}
else
{
alert("ثبت اطلاعات با خطا مواجه گردید");
}
}
اکنون زمان آن فرا رسیده تا مقادیر ثبت شده را از بانک خوانده و نمایش دهیم
برای این منظور ما در فرم لود صفحه (سمت کلاینت ) تابعی از وب سرویس را فراخوانی کرده و لیستی از اطلاعات را از آن دریافت میکنیم
کد فرم لود :
function pageLoad()
{
booknumberservic.select_booknumber(suc1);
}
کد تابع برای گرفتن اطلاعات ارسالی توسط وب سرویس:
function suc1(res)
{
array=res;
try
{
if (array[count].Name==null )
{
//
}
}
catch(e)
{
alert('به انتهای رکورد ها رسیده اید');
count-=1;
}
TD_name.innerHTML="نام = "+array[count].Name;
TD_Lname.innerHTML="نام خانوادگی = "+array[count].Lname;
TD_mobile.innerHTML="شماره موبایل = "+array[count].Moile;
}
و دو رویداد کلیک برای حرکت در لیست گرفته شده از وب سرویس:
var count=0;
function Button3_onclick() {
count=count+1;
suc1(array);
}
function Button2_onclick() {
if (count==0)
{
alert('به ابتدای رکورد ها رسیده اید');
}
else
{
count-=1;
suc1(array);
}
}
و در اخر کدهای تگ اسکریپت را به طور کامل میزارم که کاملا متوجه بشد:
<script language="javascript" type="text/javascript">
// <!CDATA[
var name="";
var lname="";
var mobile="";
var array;
function pageLoad()
{
booknumberservic.select_booknumber(suc1);
}
function Button1_onclick()
{
name=document.getElementById("TextBox1").value;
lname=document.getElementById("TextBox2").value;
mobile=document.getElementById("TextBox3").value;
if (name!="",lname!="",mobile!="")
{
booknumberservic.insert_booknumber(name,lname,mobi le,suc);
}
else
{
alert('اطلاعات را به صورت کامل وارد کنید. فیلدی نباید خالی باشد');
}
}
function suc(res)
{
if (res==1)
{
alert("ثبت اطلاعات با موفیت صورت گرفت");
booknumberservic.select_booknumber(suc1);
document.getElementById("TextBox1").value="";
document.getElementById("TextBox2").value="";
document.getElementById("TextBox3").value="";
}
else
{
alert("ثبت اطلاعات با خطا مواجه گردید");
}
}
var count=0;
function Button3_onclick()
{
count=count+1;
suc1(array);
}
function Button2_onclick()
{
if (count==0)
{
alert('به ابتدای رکورد ها رسیده اید');
}
else
{
count-=1;
suc1(array);
}
}
function suc1(res)
{
array=res;
try
{
if (array[count].Name==null )
{
//
}
}
catch(e)
{
alert('به انتهای رکورد ها رسیده اید');
count-=1;
}
TD_name.innerHTML="نام = "+array[count].Name;
TD_Lname.innerHTML="نام خانوادگی = "+array[count].Lname;
TD_mobile.innerHTML="شماره موبایل = "+array[count].Moile;
}
// ]]>
</script>
فایل برنامه رو ضمیمه میکنم میتونید دریافت کنید
اگه سوالی یا مشکلی بود من در خدمتم
التماس دعا