c#winform通过本地WebService接⼝访问SQL数据库实例总体思路如下:先建⽴数据库,再建⽴webservice,最后通过winform的按钮来调⽤服务,达到操作数据库的⽬的。
1.数据库设计
数据库名称:sa ,表名称:C
在sql sever2008 R2下建⽴表与字段等。
2.建⽴webservice
2.1启动vs2013,⽂件》新建项⽬》选择asp web 服务应⽤程序。
2.2默认按F5 Debug,浏览器⾃动⽣成Hello word的页⾯,表⽰ws配置成功。
2.3视图》服务器资源管理器》数据连接》添加连接数据库
2.4添加⼀个类,命名为DBOperation.cs
DBOperation.cs
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.Text.RegularExpressions;
using System.Collections;
using System.Collections.Generic;
namespace WebServiceTest
{
public class DBOperation : IDisposable
{
public static SqlConnection sqlCon;  //⽤于连接数据库
//将下⾯的引号之间的内容换成上⾯记录下的属性中的连接字符串
private String ConServerStr = @"Data Source=USER-20160715YA;Initial Catalog=sa;Integrated Security=True";
//默认构造函数
public DBOperation()
{
if (sqlCon == null)
{
sqlCon = new SqlConnection();
sqlCon.ConnectionString = ConServerStr;
sqlCon.Open();
}
}
//关闭/销毁函数,相当于Close()
public void Dispose()
{
if (sqlCon != null)
{
sqlCon.Close();
sqlCon = null;
}
}
}
/// <summary>
/// 获取所有货物的信息
/// </summary>
/// <returns>所有货物信息</returns>
public List<string> selectAllCargoInfor()
{
List<string> list = new List<string>();
try
{
string sql = "select * from C";
SqlCommand cmd = new SqlCommand(sql, sqlCon);
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
//将结果集信息添加到返回向量中
list.Add(reader[0].ToString());
list.Add(reader[1].ToString());
list.Add(reader[2].ToString());
}
reader.Close();
cmd.Dispose();
}
catch (Exception)
{
}
调用webservice服务
return list;
}
/// <summary>
/
// 增加⼀条货物信息
/// </summary>
/// <param name="Cname">货物名称</param>
/// <param name="Cnum">货物数量</param>
public bool insertCargoInfo(string Cname, int Cnum)
{
try
{
string sql = "insert into C (Cname,Cnum) values ('" + Cname + "'," + Cnum + ")";                SqlCommand cmd = new SqlCommand(sql, sqlCon);
cmd.ExecuteNonQuery();
cmd.Dispose();
return true;
}
catch (Exception)
{
return false;
}
}
/// <summary>
/// 删除⼀条货物信息
/// </summary>
/// <param name="Cno">货物编号</param>
public bool deleteCargoInfo(string Cno)
{
try
{
string sql = "delete from C where Cno=" + Cno;
SqlCommand cmd = new SqlCommand(sql, sqlCon);
SqlCommand cmd = new SqlCommand(sql, sqlCon);
cmd.ExecuteNonQuery();
cmd.Dispose();
return true;
}
catch (Exception)
{
return false;
}
}
}
}
Service1.asmx 修改 主要是替换helle world这⼀部分,增加method