一个通过WebService并通过身份验证来访问远程数据库简单的例子。
<%@WebService Language="C#" Class="UpDateBase"%>
using System;
using System.Data;
using System.Data.sqlClient;
using System.Web.Services;
[WebService(Namespace="http://www.csdn.net")]
public class UpDateBase : WebService
{
[WebMethod]
public DataSet GetDataSet(string UserName,string PassWord)
{
DataSet dataSet=new DataSet();
if(UserName!="" || PassWord!="")
{
sqlConnection Conn=new sqlConnection("server=localhost;database=dgs;uid=sa;pwd=;");
string sql = "select * from tEmployee where UserName='"+UserName+"' and PassWord='"+PassWord+"'";
sqlDataReader Dr;
sqlCommand Cmd = new sqlCommand(sql,Conn);
Cmd.Connection.Open();
Dr = Cmd.ExecuteReader();
if(Dr.HasRows==false)
{
Cmd.Connection.Close();
return dataSet;
}
else
{
Cmd.Connection.Close();
string connStr="server=localhost;database=dgs;uid=sa;pwd=;";
sqlConnection conn=new sqlConnection(connStr);
string sqls="select * from WSSnatchSet order by id";
sqlDataAdapter adapter=new sqlDataAdapter();
adapter.SelectCommand=new sqlCommand(sqls,conn);
adapter.Fill(dataSet,"WSSnatchSet");
conn.Close();
return dataSet;
}
}
else
{
return dataSet;
}
}
}
完成后,在MS-DOS状态通过WSDL来生成客户端Cs文件。
命令:wsdl /l:cs /n:DateBase /out:UpDate.cs http://127.0.0.1/WebService.asmx
private void Page_Load(object sender,System.EventArgs e)
{
DateBase.UpDateBase UDB = new DateBase.UpDateBase();
DateSet Ds = UDB.GetDataSet("admin","admin").Tables["WSSnatchSet"].DefaultView;
}
这样就可以成功的访问到远程的数据了。