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

由于课程答辩,需要连接到数据库,这里使用了SQLServer,但是安卓不好直接连接,需要调用webservice,于是找到了之前大神写的博客,但是由于时间久远,部分版本不对,有些使用不能成功,于是自己在发个自己成功的例子。本人是新手,大神勿喷。。
参考:https://blog.csdn.net/zhyl8157121/article/details/8169172#

先设计数据库,我的数据库名为Android 表为CompetitionInfo,表的设计如下(注意下面,Cno需要设置标识规范):

接下来需要搭建webservice的接口了。
我使用的是Visual Studio 2017 。
点击新建——>项目——>选择ASP.NET.Web应用程序(.NET Framework)
在这里插入图片描述
点击确定,并会跳出新建ASP.NET Web 应用程序 ,选择空
在这里插入图片描述
打开解决方案资源管理器,右键项目->添加->Web服务(ASMX)
在这里插入图片描述
自己设置名字,之后点击确定
创建之后可以看到如下界面
在这里插入图片描述
这里已经有自带的HelloWorld()接口,按F5运行,调用此方法会出现如下界面
在这里插入图片描述

现在我们要开始写自己调用数据库的方法了。
首先要连接数据库,点击工具->连接到数据库
在这里插入图片描述
选择数据选为Microsoft SQL Server (SqlClient),一般默认服务器名为127.0.0.1,并填写要连接的数据库,之后点击测试连接,如若成功则再点击确定。
在这里插入图片描述
点击 视图->其他窗口->服务器资源窗口
在这里插入图片描述
这里可以看到数据库,并进行相应操作
在这里插入图片描述
接下来要编写代码了。先打开解决方案资源管理器,右键项目->添加->类©
在这里插入图片描述

自定义名字,之后点击确定
在这里插入图片描述
DBOperation.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;
using System.Text.RegularExpressions;
using System.Collections;
using System.Collections.Generic;



 
namespace WebserviceTest
{
    /// <summary>
    /// 一个操作数据库的类,所有对SQLServer的操作都写在这个类中,使用的时候实例化一个然后直接调用就可以
    /// </summary>
    public class DBOperation : IDisposable
    {
        public static SqlConnection sqlCon;  //用于连接数据库

        //将下面的引号之间的内容换成上面记录下的属性中的连接字符串
        //Source 为你的数据库地址 Catalog为你的数据库名
        private String ConServerStr = @"Data Source=127.0.0.1;Initial Catalog=Android;Integrated Security=True";

        //默认构造函数
        public DBOperation()
        {
            if (sqlCon == null)
            {
                sqlCon = new SqlConnection();
                sqlCon.ConnectionString = ConServerStr;
                sqlCon.Open();
            }
        }

        //关闭/销毁函数,相当于Close()
        public void Dispose()
        {
            if (sqlCon != null)
            {
                sqlCon.Close();
                sqlCon = null;
            }
        }


        //Competiton 表操作
        //查询
        public List<string> selectAllCompetitonInfo()
        {
            List<string> list2 = new List<string>();

            try
            {
                string sql = "select * from CompetitionInfo";
                SqlCommand cmd = new SqlCommand(sql, sqlCon);
                SqlDataReader reader = cmd.ExecuteReader();

                while (reader.Read())
                {
                    //将结果集信息添加到返回向量中
                    list2.Add(reader[0].ToString());
                    list2.Add(reader[1].ToString());
                    list2.Add(reader[2].ToString());
                    list2.Add(reader[3].ToString());
                    list2.Add(reader[4].ToString());
                    list2.Add(reader[5].ToString());
                    list2.Add(reader[6].ToString());

                }

                reader.Close();
                cmd.Dispose();

            }
            catch (Exception)
            {

            }
            return list2;
        }
        //删除
        public bool deleteCompetitonInfo(string Cno)
        {
            try
            {
                string sql = "delete from CompetitionInfo where Cno=" + Cno;
                SqlCommand cmd = new SqlCommand(sql, sqlCon);
                cmd.ExecuteNonQuery();
                cmd.Dispose();

                return true;
            }
            catch (Exception)
            {
                return false;
            }
        }
        //增加
        public bool insertCompetitionInfo(string CTitle, string CStatus, string CHost, string CLevel, string CTime, string CTimng)
        {
            try
            {
                string sql = "insert into CompetitionInfo (CTitle,CStatus,CHost,CLevel,CTime,CTimng) values ('" + CTitle + "','" + CStatus + "','" + CHost + "','" + CLevel + "','" + CTime + "','" + CTimng + "')";
                SqlCommand cmd = new SqlCommand(sql, sqlCon);
                cmd.ExecuteNonQuery();
                cmd.Dispose();

                return true;
            }
            catch (Exception)
            {
                return false;
            }
        }



    }
}

在WebService1.asmx.cs上调用
在这里插入图片描述
WebService1.asmx.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;

namespace WebserviceTest
{
    /// <summary>
    /// WebService1 的摘要说明
    /// </summary>
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。 
    // [System.Web.Script.Services.ScriptService]
    public class WebService1 : System.Web.Services.WebService
    {
        WebserviceTest.DBOperation dbOperation = new WebserviceTest.DBOperation();

        [WebMethod]
        public string HelloWorld()
        {
            return "Hello World";
        }
        [WebMethod(Description = "获取所有竞赛信息")]
        public string[] selectAllCompeti
阅读终点,创作起航,您可以撰写心得或摘录文章要点写篇博文。去创作
  • 11
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
### 回答1: Xamarin是一个开发跨平台移动应用的框架,可以使用C#编写代码,并在各个主流操作系统上运行。通过使用Xamarin,我们可以通过Web服务操作SQL Server数据库。 首先,我们需要创建一个Web服务,它可以作为中间层将Xamarin客户端和SQL Server数据库连接起来。可以使用C#或ASP.NET等技术创建这个Web服务。Web服务可以使用SQL Server的数据访问技术,比如ADO.NET来进行数据库操作。 接下来,我们需要在Xamarin应用程序中引用这个Web服务。在Xamarin中,可以使用HttpClient或HttpWebRequest进行网络请求,通过调用Web服务的接口来与数据库进行通信。可以使用SOAP协议或RESTful风格的Web API来定义和实现这些接口。 在Xamarin应用程序中,我们可以创建一个数据访问层,用于处理与Web服务的通信和数据交互。我们可以封装所有与Web服务相关的细节,包括请求参数的封装、发送和接收请求、处理响应数据等。通过调用数据访问层的方法,我们可以实现从数据库中查询、插入、更新或删除数据。 在Xamarin应用程序的UI层,我们可以根据需要设计并实现各种界面,用于展示数据库中的数据或接收用户输入。我们可以通过与数据访问层的交互来获取或更新数据库中的数据,并将其显示在界面上,或者将用户输入的数据传递给数据访问层进行数据库操作。 总之,通过使用Xamarin和Web服务,我们可以方便地在移动应用中与SQL Server数据库进行交互。通过将数据访问层封装,我们可以更好地管理和维护数据库操作的代码,提高开发效率和代码质量。同时,Xamarin的跨平台特性也使得我们可以将这一功能应用于多个操作系统的移动设备上。 ### 回答2: Xamarin是一款跨平台的移动应用开发框架,通过使用C#语言和.NET平台来实现移动应用程序的开发。而Web Service是一种能够使用标准的HTTP协议进行通信的应用程序编程接口(API),它允许不同的应用程序之间进行数据交换。 在Xamarin应用程序中操作SQL Server数据库可以通过使用WebService来实现。首先,我们需要在服务器上创建一个WebService,这个WebService将提供一组用于操作SQL Server数据库的方法。这些方法可以包括查询、插入、删除和更新数据等操作。 在Xamarin应用程序中,我们可以使用HttpClient或HttpWebRequest类来发送HTTP请求并接收WebService的响应。我们可以调用WebService中的方法来执行数据库操作,例如查询特定数据表中的数据或往数据库中插入新的数据等。通过将WebService的URL地址传递给HttpClient或HttpWebRequest类,我们可以在Xamarin应用程序中与WebService进行通信。 在使用WebService进行数据库操作时,我们需要确保WebService的安全性。可以使用HTTPS协议来确保数据的安全传输。另外,我们还可以使用Web服务身份验证来确保只有经过身份验证的用户才能访问并执行数据库操作。 总结来说,通过使用Xamarin中的HttpClient或HttpWebRequest类和WebService,我们可以在移动应用程序中操作SQL Server数据库。这样可以实现数据的查询、插入、删除和更新等操作,并确保数据的安全传输和访问控制。 ### 回答3: Xamarin是一个跨平台的移动应用开发框架,它可以用于创建适用于Android和iOS平台的应用程序。通过使用Xamarin,可以通过WebService对SQL Server数据库进行操作。 WebService是一种基于标准Web协议的应用程序编程接口(API),它可以通过HTTP进行通信,并使用XML格式来传递数据。为了在Xamarin应用中使用WebService来操作SQL Server数据库,首先需要创建一个适当的WebService。 在SQL Server数据库中,可以使用ASP.NET或其他编程语言(如C#)来创建WebServiceWebService可以提供一系列方法或函数,用于执行数据库操作,例如查询数据、插入、更新和删除记录等。 在Xamarin应用中,可以使用HttpClient来调用WebService的方法。通过HttpClient,可以发送HTTP请求到WebService的URL,并接收响应。使用WebService提供的方法,可以向SQL Server数据库发送SQL查询,并获取结果。 例如,可以在Xamarin应用中创建一个按钮,当用户点击该按钮时,调用WebService的方法来查询某个表中的记录。在点击事件处理程序中,使用HttpClient发送HTTP请求到WebService的URL,并传递相应的参数。WebService接收到请求后,执行SQL查询并返回结果。在Xamarin应用中,可以解析WebService返回的结果,并将其展示给用户。 总结而言,通过使用Xamarin和WebService,可以实现对SQL Server数据库的操作。WebService提供了一种标准的接口,用于在Xamarin应用中执行数据库操作。通过发送HTTP请求和解析响应,可以实现数据的查询和更新等常用操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

2heal

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值