用web service方法使android连接到SQL sever的具体代码

大神们,请问一下,用web service方法使android连接到SQL sever的具体代码
最新回答
弥枳

2025-06-27 03:50:21

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 copy

  • public List<HashMap<String, String>> getAllInfo(final Handler myhandler)   

  • {  

  • HashMap<String, String> tempHash = new HashMap<String, String>();  

  • List<HashMap<String, String>> list = new ArrayList<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);  

  • new Thread()  

  • {  

  • public void run()  

  • {  

  • arrayList1 = Soap.GetWebServer("selectAllCargoInfor", arrayList1, arrayList2);  

  • Message msg=new Message();  

  • msg.what=0x123;  

  • msg.obj=arrayList1;  

  • myhandler.sendMessage(msg);  

  • }  

  • }.start();  

  • return list;  

  • }  

  • public void insertCargoInfo(String Cname, String Cnum)   

  • {  

  • arrayList1.clear();  

  • arrayList2.clear();  

  • arrayList1.add("Cname");  

  • arrayList1.add("Cnum");  

  • arrayList2.add(Cname);  

  • arrayList2.add(Cnum);  

  • new Thread()  

  • {  

  • public void run()  

  • {  

  • try  

  • {  

  • Soap.GetWebServer("insertCargoInfo", arrayList1, arrayList2);  

  • }  

  • catch(Exception e)  

  • {  

  • }  

  • }  

  • }.start();  

  • }  

  • public void deleteCargoInfo(String Cno)   

  • {  

  • arrayList1.clear();  

  • arrayList2.clear();  

  • arrayList1.add("Cno");  

  • arrayList2.add(Cno);  

  • new Thread()  

  • {  

  • public void run()  

  • {  

  • try  

  • {  

  • Soap.GetWebServer("deleteCargoInfo", arrayList1, arrayList2);  

  • }  

  • catch(Exception e)  

  • {  

  • }  

  • }  

  • }.start();  

  • }  

  • 4.android4.0以后子线程里是不能对主线程的UI进行改变的,因此就引出了Handler。主线程里定义Handler供子线程里使用。
  • [java] view plain copy

  • final Handler myhandler=new Handler()  

  • {  

  • public void handleMessage(Message msg)  

  • {  

  • if(msg.what==0x123)  

  • {  

  • ArrayList<String> drrayList=(ArrayList<String>) msg.obj;  

  • for(int j=0;!drrayList.isEmpty()&&j+2<drrayList.size();j+=3)  

  • {  

  • HashMap<String,String> hashMap=new HashMap<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=new SimpleAdapter(  

  • MainActivity.this,list,  

  • R.layout.adapter_item,  

  • new String[]{"Cno","Cname","Cnum"},  

  • new int[]{R.id.txt_Cno,R.id.txt_Cname,R.id.txt_Cnum});  

  • listView.setAdapter(adapter);  

  • }  

  • }  

  • }; 

追问
这个我试过了,但是不知道为什么总不成功,要是有懂的还请指教,有偿
夕颜为谁舞

2025-06-27 15:55:22

第一,web service这种重量级框架不可取,第二,要通过外部网络。要做这样的事情你要搞定这几个事:

  1. 建立一个SQL数据库,然后在本地发布一个Web API项目,POST方式请求数据

  2. Web API发布,地址解析映射到外部网络

  3. Android Srudio调用Web API,从发布的地址请求数据

想要完整的程序和远程操作指导,加V,我的ID去掉a,不是free哦,教会为止