首页在AndroidManifest.xml中添加访问数据库权限

<uses-sdk android:minSdkVersion="7" />
<uses-permission android:name="android.permission.INTERNET" />

在src中新建一个连接webservice的类,名字随意,这里叫做“HttpConnSoap”。基本上这个类是固定的,要改的大多数就是webservice端口地址,具体代码如下:

package com.example.hospital;//名字要改成自己的包名

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;

import org.xmlpull.v1.XmlPullParser;
import android.util.Xml;

public class HttpConnSoap {
public ArrayList<String> GetWebServre(String methodName,ArrayList<String> Parameters,ArrayList<String>ParValues)
{
ArrayList<String> Values=new ArrayList<String>();
String ServerUrl="http://10.0.2.2:8093/Service1.asmx";//网友要改的大多数就是这里。
//String soapAction="http://tempuri.org/LongUserId1";
String soapAction="http://tempuri.org/"+methodName;
String data="";
String soap = "<?xml version=\"1.0\" encoding=\"utf-8\"?>"
+ "<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">"
+"<soap:Body />";
String tps,vps,ts;
String mreakString="";
mreakString="<"+methodName+" xmlns=\"http://tempuri.org/\">";
for ( int i = 0; i < Parameters.size(); i++) {
tps=Parameters.get(i).toString();
//设置该方法的参数为.net webService中的参数名称
vps=ParValues.get(i).toString();
ts="<"+tps+">"+vps+"</"+tps+">";
mreakString=mreakString+ts;
}
mreakString=mreakString+"</"+methodName+">";
/*
+"<HelloWorld xmlns=\"http://tempuri.org/\">"
+"<x>string11661</x>"
+"<SF1>string111</SF1>"
+ "</HelloWorld>"
*/
String soap2="</soap:Envelope>";
String requestData=soap+mreakString+soap2;
System.out.println(requestData);

try{
URL url =new URL(ServerUrl);
HttpURLConnection con=(HttpURLConnection)url.openConnection();
byte[] bytes=requestData.getBytes("utf-8");
con.setDoInput(true);
con.setDoOutput(true);
con.setUseCaches(false);
con.setConnectTimeout(8000);// 设置超时时间
con.setRequestMethod("POST");
con.setRequestProperty("Content-Type", "text/xml;charset=utf-8");
con.setRequestProperty("SOAPAction",soapAction);
con.setRequestProperty("Content-Length",""+bytes.length);
OutputStream outStream=con.getOutputStream();
outStream.write(bytes);
outStream.flush();
outStream.close();
InputStream inStream=con.getInputStream();

//data=parser(inStream);
//System.out.print("11");
Values= inputStreamtovaluelist(inStream,methodName);
//System.out.println(Values.size());
return Values;

}
catch(Exception e)
{
System.out.print("2221");
return null;
}
}
public ArrayList<String> inputStreamtovaluelist (InputStream in,String MonthsName) throws IOException {
StringBuffer out = new StringBuffer();
String s1="";
byte[] b = new byte[4096];
ArrayList<String> Values=new ArrayList<String>();
Values.clear();
for (int n; (n = in.read(b)) != -1;) {
s1=new String(b, 0, n);
out.append(s1);
}
System.out.println(out);
String[] s13=s1.split("><");
String ifString=MonthsName+"Result";
String TS="";
String vs="";

Boolean getValueBoolean=false;
for(int i=0;i<s13.length;i++){
TS=s13[i];
System.out.println(TS);
int j,k,l;
j=TS.indexOf(ifString);
k=TS.lastIndexOf(ifString);

if (j>=0)
{
System.out.println(j);
if (getValueBoolean==false)
{
getValueBoolean=true;
}
else {

}

if ((j>=0)&&(k>j))
{
System.out.println("FFF"+TS.lastIndexOf("/"+ifString));
//System.out.println(TS);
l=ifString.length()+1;
vs=TS.substring(j+l,k-2);
//System.out.println("fff"+vs);
Values.add(vs);
System.out.println("退出"+vs);
getValueBoolean=false;
return Values;
}

}
if (TS.lastIndexOf("/"+ifString)>=0)
{
getValueBoolean=false;
return Values;
}
if ((getValueBoolean)&&(TS.lastIndexOf("/"+ifString)<0)&&(j<0))
{
k=TS.length();
//System.out.println(TS);
vs=TS.substring(7,k-8);
//System.out.println("f"+vs);
Values.add(vs);
}

}

return Values;
}

}

需要新建一个数据库访问类,通过HttpConnSoap这个类和底层数据库进行通信,操作。这里新建的方法要和你新建webservice时一致,我的webservice是用vs2010,.net 3.5框架搭建的。这里列举两个方法,写法大概就是这样的,网友写的时候要根据自己的需求来写就好了。

public class DBUtil
{
static boolean feeflag=false;
ArrayList<String> arrayList=new ArrayList<String>();
ArrayList<String> brrayList=new ArrayList<String>();
ArrayList<String> crrayList=new ArrayList<String>();
HttpConnSoap Soaptest=new HttpConnSoap();
public static Connection getConnection()
{
Connection con=null;
try
{
System.out.println("111");
Class.forName("org.gjt.mm.mysql.Driver");
System.out.println("222");
con=DriverManager.getConnection("jdbc:mysql://192.168.0.100:3306/test?useUnicode=true&characterEncoding=UTF-8","root","123456");
System.out.println("333");
}
catch(Exception e)
{
System.out.println("444");
e.printStackTrace();
}
return con;
}

//查询学生信息
public String[] selectStu(String StuNO)
{
String ss[]=new String[8];
String result=null;
arrayList.clear();
brrayList.clear();
crrayList.clear();
arrayList.add("StuNO");
brrayList.add(StuNO);
crrayList=Soaptest.GetWebServre("selectStu", arrayList, brrayList);
ss[0]=crrayList.get(0);
ss[1]=crrayList.get(1);
ss[2]=crrayList.get(2);
ss[3]=crrayList.get(3);
ss[4]=crrayList.get(4);
ss[5]=crrayList.get(5);
ss[6]=crrayList.get(6);
ss[7]=crrayList.get(7);
return ss;

}

public List<HashMap<String, String>> selectStuAll() {
List<HashMap<String, String>> list = new ArrayList<HashMap<String, String>>();

arrayList.clear();
brrayList.clear();
crrayList.clear();

crrayList = Soaptest.GetWebServre("selectStuAll", arrayList, brrayList);

/*HashMap<String, String> tempHash = new HashMap<String, String>();
tempHash.put("S_Name", "姓名");
tempHash.put("S_Age", "年龄");
tempHash.put("S_Sex", "性别");
list.add(tempHash);*/

for (int j = 0; j < crrayList.size(); j += 3) {
HashMap<String, String> hashMap = new HashMap<String, String>();
hashMap.put("S_Name", crrayList.get(j));
hashMap.put("S_Age", crrayList.get(j + 1));
hashMap.put("S_Sex", crrayList.get(j + 2));
list.add(hashMap);
}

return list;
}

}

下面就是Android程序中调用了,这里用listview显示数据。

private ListView listView;
private DBUtil dbUtil;
private SimpleAdapter adapter;

private void setListView() {

List<HashMap<String, String>> list = new ArrayList<HashMap<String, String>>();

list = dbUtil.selectStuAll();

adapter = new SimpleAdapter(
DayList.this,
list,
R.layout.adapter,
new String[] { "S_Name", "S_Age", "S_Sex" },
new int[] { R.id.textView1, R.id.textView2, R.id.textView3 });

listView.setAdapter(adapter);

}

Android通过webservice对sqlserver数据库进行操作的更多相关文章

  1. SQLSERVER数据库备份操作和还原操作做了什么

    SQLSERVER数据库备份操作和还原操作做了什么 看了这篇文章:还原/备份时做了些什么 自己也测试了一下,下面说的错误日志指的是SQLSERVER ERRORLOG 一般在C:\Program Fi ...

  2. ORACLE链接SQLSERVER数据库数据操作函数范例

    ORACLE链接SQLSERVER数据库数据操作函数范例 create or replace function FUN_NAME(LS_DJBH IN varchar2 ,LS_ITM varchar ...

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

    http://blog.csdn.net/zhyl8157121/article/details/8169172 目录(?)[-] 项目说明 开发环境的部署 数据库设计 服务器端程序设计Webserv ...

  4. linux上面sqlserver数据库的操作

    sqlserver2017可以安装到linux也不是什么新鲜事, centos安装好sqlserver后有一写操作 systemctl status mssql-server:查看sqlserver的 ...

  5. sqlserver数据库授权操作

    https://www.jb51.net/article/126432.htm 系统需求简介 最近一直在做高校云平台这个项目,我们小组做的是其中的一个子系统是成绩管理系统,不同于之前的开发方式,本次我 ...

  6. Jmeter连接SqlServer数据库并操作

    jmeter支撑多种数据库,且均需要下载对应的驱动包,如下以SqlServer为例作为讲解,其他数据库类似. 1.下载jdbc驱动(注意下载对应版本),并放在jmeter的lib目录下,重启jmete ...

  7. 通过Android的API对Sqlite数据库进行操作

    一.增删改查 增 改 查 删 这是删除之前 删除三条 Dao.java package com.example.databasedemo; import android.content.Content ...

  8. SQLSERVER 数据库基础操作

    1.修改表中字段的长度,类型为varchar,从30改到50    语句执行(注:当前为30):    alter table 表名 alter column 列名 varchar(50)  2.增加 ...

  9. 用WebService实现对数据库进行操作(添加+删除+修改)(转)

    转自:http://blog.csdn.net/beyondqd/article/details/6703169 表为User,字段有 编号: int id,用户名:string UserName,密 ...

随机推荐

  1. 训练集(train set) 验证集(validation set) 测试集(test set)

    转自:http://www.cnblogs.com/xfzhang/archive/2013/05/24/3096412.html 在有监督(supervise)的机器学习中,数据集常被分成2~3个, ...

  2. 验证码识别--type5

    验证码识别--type5 每一种验证码都是由人设计出来.在设计过程中,可能由于多个方面的原因,造成了这样或那样的可以被利用的漏洞.验证码识别,首先需要解决的问题就是发现这些漏洞--然后利用漏洞解决问题 ...

  3. Javascript正则表达式笔记

    一.字符类 将单独的直接字符放进[]内,就组成了字符类.一个字符类和它所包含的任何字符都匹配. 例如:/[abc]/ 与abc三个字母的任意一个匹配. 同时,还可以定义否定字符类.利用^字符.例如:/ ...

  4. hdu 3944 dp?

    DP? Time Limit: 10000/3000 MS (Java/Others)    Memory Limit: 128000/128000 K (Java/Others)Total Subm ...

  5. WPF中两个窗口的互斥

    这里所讲的互斥是两个窗口不同时存在,打开一,只显示一:点一相关按钮显示二,关闭一:关闭二,显示一. 窗口一: history winResult winChoice = new winResult() ...

  6. Mysql-学习笔记(==》集合函数与分组四)

    -- 聚集函数 配合分组语句 group by-- 显示最高分SELECT MAX(sscore) FROM db.`student`;-- 显示最高分学生的信息min maxSELECT * FRO ...

  7. 2016年11月3日 星期四 --出埃及记 Exodus 19:19

    2016年11月3日 星期四 --出埃及记 Exodus 19:19 and the sound of the trumpet grew louder and louder. Then Moses s ...

  8. 2016年10月16日 星期日 --出埃及记 Exodus 18:27

    2016年10月16日 星期日 --出埃及记 Exodus 18:27 Then Moses sent his father-in-law on his way, and Jethro returne ...

  9. CODEVS 3145 汉诺塔游戏 递归

    题目描述 Description 汉诺塔问题(又称为河内塔问题),是一个大家熟知的问题.在A,B,C三根柱子上,有n个不同大小的圆盘(假设半径分别为1-n吧),一开始他们都叠在我A上(如图所示),你的 ...

  10. 模板页显示Excel数据Gridview增删改查

    <%@ Page Title="主页" Language="C#" MasterPageFile="~/Site.master" Au ...