想学软件的小电工 2019-02-03 15:09 采纳率: 100%
浏览 922
已采纳

C#怎么连接Webservice服务?

如题,我要做一个基于sql数据库访问的C#应用程序,请教别人之后我知道需要把数据库服务部署到网站上,别人才可以远程访问我的数据库。然后我就根据网上的方法部署一个webservice到网站上,但是C#程序引用时还是不行。初学C#,很多都还不懂,所以不知道是哪里出了问题,希望各位大佬帮忙看看,不胜感激
这是webservice1.asmx.cs里的内容

namespace Webservice
{
    /// <summary>
    /// WebService1 的摘要说明
    /// </summary>
    [WebService(Namespace = "localhost")]
    [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
    {

        [WebMethod]
        public string HelloWorld()
        {
            return "Hello World";
        }

        DBOperation dbOperation = new DBOperation();
    }
}

这是类DBOperation里的内容:

 public class DBOperation : IDisposable
    {
        public static SqlConnection sqlCon;  //用于连接数据库           //将下面的引号之间的内容换成上面记录下的属性中的连接字符串         
        private String ConServerStr = @"Data Source=DAWN\MSSQLSERVER2;Initial Catalog=KYQuery;Persist Security Info=True;User ID=sa;Password=123456";         //默认构造函数         
        public DBOperation()
        {
            if (sqlCon == null)
            {
                sqlCon = new SqlConnection();
                sqlCon.ConnectionString = ConServerStr;
                sqlCon.Open();
            }
        }       
        //关闭/销毁函数,相当于Close()         
        public void Dispose()
        {
            if (sqlCon != null)
            {
                sqlCon.Close();
                sqlCon = null;
            }
        }

    }
    这是C#程序里引用webservice的内容:
ServiceReference1.WebService1SoapClient ws = new ServiceReference1.WebService1SoapClient();
            SqlConnection sqlcn = new SqlConnection();
            string connectionString = @"Data Source = DAWN\MSSQLSERVER2; Initial Catalog = KYQuery;User ID = sa; Password = 123456";
            sqlcn.ConnectionString = connectionString;
            SqlCommand sqlcm = new SqlCommand();
            sqlcm.Connection = sqlcn;
            sqlcm.CommandType = CommandType.Text;
            sqlcm.CommandText = "select * from KYQuery";
            sqlcn.Open();
            SqlDataAdapter adapter = new SqlDataAdapter();
            adapter.SelectCommand = sqlcm;
            DataSet ds = new DataSet();
            adapter.Fill(ds);
            sqlcm.Dispose();
            if (sqlcn != null)
            {
                sqlcn.Dispose();
                sqlcn.Close();
            }

            DataTable dt = ds.Tables[0];
            dataGridView1.DataSource = dt;
  • 写回答

3条回答 默认 最新

  • 关注

    namespace Webservice
    {
    ///
    /// WebService1 的摘要说明
    ///
    [WebService(Namespace = "localhost")]
    [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
    {

        [WebMethod]
        public string HelloWorld()
        {
            return "Hello World";
        }
    
        [WebMethod]
        public DataTable Select()
        {
             DBOperation dbOperation = new DBOperation();
         SqlConnection sqlcn = new SqlConnection();
            string connectionString = @"Data Source = DAWN\MSSQLSERVER2; Initial Catalog = KYQuery;User ID = sa; Password = 123456";
            sqlcn.ConnectionString = connectionString;
            SqlCommand sqlcm = new SqlCommand();
            sqlcm.Connection = sqlcn;
            sqlcm.CommandType = CommandType.Text;
            sqlcm.CommandText = "select * from KYQuery";
            sqlcn.Open();
            SqlDataAdapter adapter = new SqlDataAdapter();
            adapter.SelectCommand = sqlcm;
            DataSet ds = new DataSet();
            adapter.Fill(ds);
            sqlcm.Dispose();
            if (sqlcn != null)
            {
                sqlcn.Dispose();
                sqlcn.Close();
            }
            return ds.Tables[0];//此处可序列化成json 返回string
        }
    
    }
    

    }

    ServiceReference1.WebService1SoapClient ws = new ServiceReference1.WebService1SoapClient();
    dataGridView1.DataSource = ws.Select();

    
    

    你完全没有理解到WebService是什么。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 代写uni代码,app唤醒
  • ¥15 全志t113i启动qt应用程序提示internal error
  • ¥15 ensp可以看看嘛.
  • ¥80 51单片机C语言代码解决单片机为AT89C52是清翔单片机
  • ¥60 优博讯DT50高通安卓11系统刷完机自动进去fastboot模式
  • ¥15 minist数字识别
  • ¥15 在安装gym库的pygame时遇到问题,不知道如何解决
  • ¥20 uniapp中的webview 使用的是本地的vue页面,在模拟器上显示无法打开
  • ¥15 网上下载的3DMAX模型,不显示贴图怎么办
  • ¥15 关于#stm32#的问题:寻找一块开发版,作为智能化割草机的控制模块和树莓派主板相连,要求:最低可控制 3 个电机(两个驱动电机,1 个割草电机),其次可以与树莓派主板相连电机照片如下: