windows mobile+webservice+sql server 2005配置方法
要实现windows mobile上PDA等设备的远程连接数据库项目,需要使用这种大体的框架,通过设备与webservice连接传输数据,然后再webservice中连接数据库进行查询和更新。
一:首先要配置好sql server 2005相关的东西:
第一件事,下载它的管理工具 SQL Server Management Studio Express。VS2008安装程序没有,需要从MS的网站下载:请猛击这里
下载安装后,程序的Microsoft SQL Server 2005程序组会出现它的快捷方式。
接下来,我们打开它
这个时候只有windows登陆模式。
那么我们现在开始来配置sa模式登陆
1. 打开SQL Server的配置管理器,配置SQLEXPRESS 的协议
注意这三个协议要启用
2.1 配置TCP/IP的属性之"协议"
这里的全部侦听选 否
2.2 配置TCP/IP的属性之"IP地址"
注意TCP端口地址是 1433
3.配置客户端协议
也是开启这三个
4. 配置TCP/IP属性
5.配置完成后重启SQL Server服务
6. 测试端口1433
CMD中输入了netstat -na 命令查看
注意:如果没有出现1433端口的话。请仔细核实之前的操作步骤,另外注意关闭系统防火墙。
7.SQL Server Management Studio Express 用windows身份验证模式进入
在该模式的数据库服务属性里面有一项“安全性”,选中图示。
8.进入 安全性---->登录名----->属性,修改sa的密码。
修改完后确认退出
9. 再次登陆,这次可以使用SQL Server 身份验证 模式
10. sa登陆完成
注意:有个步骤的操作容易混淆,如下图
看看是不是与7 图中的差不多。我当时按照网上某些转载的文章配置,它写的是“数据库实例的属性”,然后我就找了半天就是没有安全性这个选项,以至以为是不是弄错数据库版本了。正确的应该是数据库服务器属性。
二:进行项目的创建:
1.可以再vs2008中创建device项目,模拟器就用windows mobile 6 professional emulator,事先要准备的是配置好模拟器里面的链接,可以使用PC的网络,链接方法参见http://www./softjc/42088.html
2.在解决方案中添加webservice,自动生成需要链接的url,是用的localhost和端口号,在模拟器中运行会报错,需要将localhost改为本机的内网ip
复制代码
代码如下:
public Service() {
this.Url = "http://192.168.1.102:57534/WebSite1/Service.asmx";
}
端口号当然是系统自动生成的端口号
3.在vs程序中添加web引用,引用创建的webservice。
4.在webservice程序中你需要的地方编写与sql server连接的代码:
复制代码
代码如下:
public string GetName()
{
SqlConnection mycon = new SqlConnection(@"Data Source=localhost/sqlexpress;Initial Catalog=database1;user id=sa;pwd=7promise");//sa账号登录
//SqlConnection mycon = new SqlConnection(@"Data Source=localhost/sqlexpress;Initial Catalog=database1;Integrated Security=True");//windows验证登录
mycon.Open();
string a = "999999";
SqlCommand cmd = new SqlCommand("insert into table_1(name) values('"+a+"')", mycon);
cmd.ExecuteNonQuery();
mycon.Close();
return "Edward";
}
5.在vs程序中调用webservice方法:
复制代码
代码如下:
private void button1_Click(object sender, EventArgs e)
{
localhost.Service a = new SmartDeviceProject6.localhost.Service();
a.GetName();
}
这样运行程序就可以了,切忌不能直接用vs2008写设备程序直接连接数据库,也连不上,须通过webservice进行管理数据库,但可以在console程序中连接。