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();
}
[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这种重量级框架不可取,第二,要通过外部网络。要做这样的事情你要搞定这几个事:
建立一个SQL数据库,然后在本地发布一个Web API项目,POST方式请求数据
Web API发布,地址解析映射到外部网络
Android Srudio调用Web API,从发布的地址请求数据
想要完整的程序和远程操作指导,加V,我的ID去掉a,不是free哦,教会为止