在Winform中對數據庫進行操作缺乏安全性,因而可以使用Winform調用WebService來實現對數據庫的各種操作。
在VS2010中,創建一個Web服務程序,第一:創建一個空的Web應用程序,名字自己起。第二:鼠標右擊剛剛創建的工程,選擇添加,在彈出的框中選擇Web服務,自己起好名字,確定即可,這樣就創建好一個Web服務程序了。
經過上上面的步驟,我們就可以添加方法來實現數據庫的操作。
代碼如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Data.SqlClient;
using System.Data;
namespace WebServerSQL
{
/// <summary>
/// WebServerGetSqlData 的摘要說明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// 若要允許使用 ASP.NET AJAX 從腳本中調用此 Web 服務,請取消對下行的注釋。
// [System.Web.Script.Services.ScriptService]
public class WebServerGetSqlData : System.Web.Services.WebService
{
//定義數據庫連接對象
private SqlConnection con;
[WebMethod]
public DataSet GetInfo(string strSql)
{
string sqlConnect = "initial catalog=數據庫名稱;server=服務器名稱;uid=sa;pwd=密碼";
con = new SqlConnection(sqlConnect);
con.Open();
SqlDataAdapter da = new SqlDataAdapter(strSql, con);
DataSet ds = new DataSet();
da.Fill(ds);
return ds;
}
[WebMethod]
public bool testConnect()
{
try
{
//數據庫連接,定義連接對象和連接字符串並打開
string sqlConnect = "initial catalog=數據庫名稱;server=服務器名稱;uid=sa;pwd=密碼";
con = new SqlConnection(sqlConnect);
con.Open();
return true;
}
catch
{
return false;
}
}
}
}
下面看看Winfrom下怎麼調用WebService
首先要添加Web服務引用,在VS2010中,直接右擊工程,在彈出的菜單中看不到添加Web引用,難道Winform中不能添加Web引用嗎?通過驗證,是可以添加的。我們只需要選擇選擇Web服務引用,然後在彈出的對話框中點擊高級,然後你就會看到新彈出一個對話框裡面就有添加Web引用,然後輸入WebService服務的URL地址按照步驟完成即可。如下圖:
然後在Winfrom中我們可以調用WebService提供的方法了,代碼如下:
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;
namespace WinformGetWebServerSQL
{
public partial class FrmWebserver : Form
{
public FrmWebserver()
{
InitializeComponent();
}
//定義web服務對象
localhost.WebServerGetSqlData webData = new localhost.WebServerGetSqlData();
//測試數據庫是否連接成功
private void btnTest_Click(object sender, EventArgs e)
{
if (webData.testConnect())
{
label2.Text = "成功";
}
else
{
label2.Text = "失敗";
}
}
//顯示數據庫中表的數據
private void btnShow_Click(object sender, EventArgs e)
{
string strsql = "select * from item";
DataSet ds=webData.GetInfo(strsql);
DVShowInfo.DataSource = ds.Tables[0];
}
}
}
至此一個簡單的調用webservice的程序就完成了,感興趣的朋友可以在WebService中添加更多的方法,比如對數據庫的增,刪,改,查等供winform調用。
希望朋友們多多給點意見,大家共同學習進步!