下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

详解Android通过webservice如何连接SQLServer 详细教程(数据库+服务器+客户端)

作者:课课家教育     来源: http://www.kokojia.com点击数:1599发布时间: 2016-04-07 10:05:42

标签: androidsqlserverwebservice

      SQL Server是一个关系数据库管理系统,其具有使用方便可伸缩性好与相关软件集成程度高等优点,Microsoft SQL Server 是一个全面的数据库平台,使用集成的商业智能 (BI)工具提供了企业级的数据管理。Microsoft SQL Server 数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,可以构建和管理用于业务的高可用和高性能的数据应用程序。

详解Android通过webservice如何连接SQLServer 详细教程_android_sqlserver_课课家

  为了避免再次被说标题党,这里先说明些事情:

  第一,Android没法直接连接SQLServer,起码我没有发现方法,想想看,sqlserver安装之后有多大,android程序是跑在手机上的,想让程序直接访问sqlserver,那手机要多大的内存?

  第二,本文是通过一个“桥梁”——webservice来间接访问SQLServer的,当然还有其他方法,感兴趣的同学可以自行百度。

  如果理解了上面两点,好了咱们继续。

  教程会拿一个具体的例子来讲,一步一步来,也许细节上还可以继续加工,但大致的流程就是这样的。

  本教程有五个部分:

  1.项目说明

  2.开发环境部署

  3.数据库设计

  4.服务器端程序设计

  5.客户端(android端)程序设计

  项目说明

  这个项目意在实现一个简单的android连接Sqlserver的功能。

  就做一个简单的库存管理功能,包括对仓库内现有货物的查看、货物信息的增加&删除。

  开发环境的部署

  今天主要讲解第一个部分,开发环境的部署.

  操作系统:Windows764bit 旗舰版

  当然这个是什么基本无所谓,只是我是在这上面开发的,不过家庭普通版的貌似不能配置IIS,就是咱们后面要使用的一个服务.

  android端:eclipse + ADT集成开发环境

  相信看到这个教程的基本都知道如何做这些了.如果真的是有哪位同学android开发环境没有配置好而来看这篇教程,请先移步->google官网

  服务器端:VisualStudio 2010 旗舰版

  这个是用来写website/webservice的,开发语言使用C# (即.net)

  数据库:SQLServer2008 R2

  其实这个是什么版本也无所谓吧,教程使用的都是比较基本的东西,所以版本的差异基本可以忽略。

  IIS 7.5:正确配置并开启IIS服务

  如果想将website/webservice发布出去就要开启这个服务。但是如果仅仅是在本地进行测试就不需要配置,直接在VS中运行就可以。

  其实我在开发的时候也只是配置IIS的时候遇到了一些问题,这里给出IIS的配置方法,我当初就是照着这个配置的。

  数据库设计

  数据库名称:StockManage

  表设计

  表名称:C

  表说明:

  

  下图是设计表的时候的截图。

  向表中输入内容

  服务器端程序设计(Webservice)

  其实服务端可以写成webservice也可以写成website,前者只是提供一种服务,而后者是可以提供用户界面等具体的页面,后者也就是咱们平时所说的“网站”。

  两者的区别:

  Web Service 只提供程序和接口,不提供用户界面

  Web Site 提供程序和接口,也提供用户界面(网页)

  由于咱们只是需要一个中介来访问sqlserver,所以写成webservice足够了。

  目标:写一个Website访问Sqlserver,获取数据并转换成xml格式,然后传递给android客户端。

  1. 新建一个Webservice工程

  2. 视图 -> 其它窗口 -> 服务器资源管理器

  3. 右键数据连接 -> 添加连接

  4. 选择Microsoft Sqlserver

  5. 如下图所示选择(可以点击测试连接来检测连接是否成功,然后点击确定)

  6. 数据库的查看和编辑也可以在VS中进行了

  7. 先查看一下数据库属性并记录下连接属性

  8. 新建一个类DBOperation,代码如下:

  9. 修改Service1.asmx.cs代码如下:

  10. 运行程序(F5),会自动打开一个浏览器,可以看到如下画面:

  11. 选择相应的功能并传递参数可以实现调试从浏览器中调试程序:

  下图选择的是增加一条货物信息

  12. 程序执行的结果:

  13.另,记住这里的端口名,后面android的程序中添入的端口号就是这个:

  客户端(android端)程序设计

  程序代码:

  1.MainActivity

  2.HttpConnSoap

  3.DBUtil

  4.activity_main.xml

  5.adapter_item.xml

  6.dialog_add.xml

  7.dialog_delete.xml

  8.strings.xml

  9.Manifest.xml

  运行程序的效果如下图所示:

  再说一下IIS,如果只是在本地进行测试等操作,是不需要使用到IIS的,但是如果想发布出去,就要配置一下IIS。

  好啦,基本就是这样了。程序不是完善的,但大概的思路就是这样,用到的技术也大概就是这几样,但是每一样拿出来都够学一阵的了。

  具体的更深层的东西已经在HttpSoap中封装好了,所以大家使用的时候可以直接用这个类就可以了。

  android调用的方法就是如DBUtil中那样,其中arrayList中和brrayList中分别存放对应的webservice中“selectAllCargoInfor”方法的参数名和参数的值。

  由于webservice中的selectAllCargoInfo方法的参数为空,所以对应的,android端调用的时候,arrayList和brrayList的值就是空的。

  所以大家在使用的时候,只需要将webservice中的方法写好,然后写好DBUtil中的调用参数即可。

  如果获取值为空,可能是返回值是复杂类型造成的。

  0.Webservice无法正确执行(这个没什么说的,webservice有问题)

  1.Webservice用本地的电脑可以访问,但是在手机浏览器中就无法得到正确的结果(Webservice配置问题,或者IIS配置问题)

  2.Webservice用本地的电脑和手机浏览器都可以正确执行,但是程序一运行就崩溃

  2.1 可能情况1 - 我的程序是用Android2.1写的,Android2.3以后有一个StrictMode的问题,如果有同学是用2.3以上版本做的,可能是这个问题,具体可以搜索一下StrictMode,然后修改一下程序即可,我在这里就不献丑了。

  2.2 可能情况2 - 调试的时候是用的是模拟器,IP地址当时填写的是10.0.2.2,这个地址是PC相对于模拟器的IP地址,放到真机中就不行了,真机运行程序中要填写PC的IP地址(可以将手机和PC连接在同一个局域网中做测试,也可以将程序发布到服务器上,Android程序中填写服务器的IP地址和端口号)。

  3.用模拟器调试怎么都可以,但放到真机上就不行。

  3.1 可能情况1 - 模拟器的版本是2.3以下的,程序运行正常,可是真机是2.3以上的,解决方法参考2.1。

  3.2 可能情况2 - 放到真机运行的时候没改程序的url,IP地址错误,解决方法参考2.2。

  4.SQL语句错误、按钮监听错误等问题大家细心查查就行了。

     上文详细解释了开发环境部署,数据库设计,服务器端程序设计和客户端程序设计的内容和相关操作步骤以及方法,还解释了存在的一些问题。对于IIS的相关知识的话这里也不详细介绍了,有兴趣的同学可以在网上查找相关知识以及步骤来跟着操作配置。

赞(30)
踩(1)
分享到:
华为认证网络工程师 HCIE直播课视频教程