① 用web service方法使android连接到SQL sever的具体代码
1.可以改用SQL Server身份验证方式。在安全性-登录名中添加一个SQL Server身份验证方式登录的用户。
C#的代码里面数据库连接字符串还是粘贴属性里面的连接字符串,把密码改成自己的密码。
private String ConServerStr = "Data Source=2013-20160523DL;Initial Catalog=test;User ID=houjingyi;Password=*******";
2.一定要先在webservice里面确认对数据库的操作没有问题,再去调android程序。只看到页面出来了很可能数据库连接有问题,这样即使android程序没问题也调不出来。
3.android4.0以后不允许在主线程中访问网络,因为万一主线程阻塞了,会使得界面没有响应。我们开启线程访问即可。
[java]view plain
publicList<HashMap<String,String>>getAllInfo(finalHandlermyhandler)
{
HashMap<String,String>tempHash=newHashMap<String,String>();
List<HashMap<String,String>>list=newArrayList<HashMap<String,String>>();
tempHash.put("Cno","Cno");
tempHash.put("Cname","Cname");
tempHash.put("Cnum","Cnum");
list.clear();
arrayList1.clear();
arrayList2.clear();
arrayList3.clear();
list.add(tempHash);
newThread()
{
publicvoidrun()
{
arrayList1=Soap.GetWebServer("selectAllCargoInfor",arrayList1,arrayList2);
Messagemsg=newMessage();
msg.what=0x123;
msg.obj=arrayList1;
myhandler.sendMessage(msg);
}
}.start();
returnlist;
}
publicvoidinsertCargoInfo(StringCname,StringCnum)
{
arrayList1.clear();
arrayList2.clear();
arrayList1.add("Cname");
arrayList1.add("Cnum");
arrayList2.add(Cname);
arrayList2.add(Cnum);
newThread()
{
publicvoidrun()
{
try
{
Soap.GetWebServer("insertCargoInfo",arrayList1,arrayList2);
}
catch(Exceptione)
{
}
}
}.start();
}
publicvoiddeleteCargoInfo(StringCno)
{
arrayList1.clear();
arrayList2.clear();
arrayList1.add("Cno");
arrayList2.add(Cno);
newThread()
{
publicvoidrun()
{
try
{
Soap.GetWebServer("deleteCargoInfo",arrayList1,arrayList2);
}
catch(Exceptione)
{
}
}
}.start();
}
- 4.android4.0以后子线程里是不能对主线程的UI进行改变的,因此就引出了Handler。主线程里定义Handler供子线程里使用。
finalHandlermyhandler=newHandler()
{
publicvoidhandleMessage(Messagemsg)
{
if(msg.what==0x123)
{
ArrayList<String>drrayList=(ArrayList<String>)msg.obj;
for(intj=0;!drrayList.isEmpty()&&j+2<drrayList.size();j+=3)
{
HashMap<String,String>hashMap=newHashMap<String,String>();
hashMap.put("Cno",drrayList.get(j));
hashMap.put("Cname",drrayList.get(j+1));
hashMap.put("Cnum",drrayList.get(j+2));
list.add(hashMap);
}
adapter=newSimpleAdapter(
MainActivity.this,list,
R.layout.adapter_item,
newString[]{"Cno","Cname","Cnum"},
newint[]{R.id.txt_Cno,R.id.txt_Cname,R.id.txt_Cnum});
listView.setAdapter(adapter);
}
}
};
[java]view plain
② android调用webservice接口都有什么方式
android调用webservice接口的方法是利用第三方jar包完成。
1、首先如果想在Android平台上调用WebService需要依赖于第三方类库:ksoap2 而在Android平台上,使用的是ksoap2 Android,一个高效,轻量级的SOAP开发包