zoukankan      html  css  js  c++  java
  • 重拾webservice! 哎,不用就忘记

    新建一个web服务:
     
    写一个返回XML的dataset转化成XML的方法:
     
    [WebMethod(Description = "查询以获取需要的终端信息")]
            public XmlDataDocument GetSiteAData()//参数在这里没用到 
            {
                using( var db = new DatabaseFirst.TestEntities())
                {
                    //var list = db.Users.Select(o => o) ;
    
                    //List<User> listMain = list.ToList();
                    //DataSet ds = ConvertToDataSet(listMain);
    
    
            string strConn = @"uid=sa;pwd=123;database=Test;server=ASIAIT-SERVER\SERVER2008R2"; SqlConnection ConnSql
    = new SqlConnection(strConn); //Sql链接类的实例化 ConnSql.Open ();//打开数据库 string strSQL="select * from [user]"; //要执行的SQL语句 SqlDataAdapter da=new SqlDataAdapter(strSQL,ConnSql); //创建DataAdapter数据适配器实例 DataSet ds2=new DataSet();//创建DataSet实例 da.Fill(ds2, "TableName");//使用DataAdapter的Fill方法(填充),调用SELECT命令 ConnSql.Close ();//关闭数据库 XmlDataDocument xd = new XmlDataDocument(ds2); //读取数据集中数据 xd.Save(Console.Out);//输出数据 if (ds2.Tables.Count > 0) { return xd; } else { string xml = "<NewDataSet></NewDataSet>"; xd.LoadXml(xml); return xd; } } }

     另外积累一个List转换DataSet的方法(例子中没有用到)

    /// <summary>
            /// list转DataSet
            /// </summary>
            /// <typeparam name="T"></typeparam>
            /// <param name="list"></param>
            /// <returns></returns>
            public static DataSet ConvertToDataSet<T>(List<T> list)
            {
                if (list == null || list.Count <= 0)
                {
                    return null;
                }
    
                DataSet ds = new DataSet();
                DataTable dt = new DataTable(typeof(T).Name);
                DataColumn column;
                DataRow row;
    
                System.Reflection.PropertyInfo[] myPropertyInfo = typeof(T).GetProperties(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance);
    
                foreach (T t in list)
                {
                    if (t == null)
                    {
                        continue;
                    }
    
                    row = dt.NewRow();
    
                    for (int i = 0, j = myPropertyInfo.Length; i < j; i++)
                    {
                        System.Reflection.PropertyInfo pi = myPropertyInfo[i];
    
                        string name = pi.Name;
    
                        if (dt.Columns[name] == null)
                        {
                            column = new DataColumn(name, pi.PropertyType);
                            dt.Columns.Add(column);
                        }
    
                        row[name] = pi.GetValue(t, null);
                    }
    
                    dt.Rows.Add(row);
                }
    
                ds.Tables.Add(dt);
    
                return ds;
            }

    另外一个项目调用webservice;添加web服务引用:

    后台调用WS方法:

    localhost.WebServiceTest service = new localhost.WebServiceTest();
                XmlDataDocument xd = new XmlDataDocument();
                XmlNode xmlNode1 = service.GetSiteAData();
                StringBuilder xmlString1 = new StringBuilder(xmlNode1.OuterXml);
    
                xd.LoadXml(xmlString1.ToString());
    
                DataSet ds = new DataSet();
                ds.ReadXml(new XmlNodeReader(xd));
                GridView1.DataSource = ds.Tables[0];
                GridView1.DataBind();
  • 相关阅读:
    解说asp.net core MVC 过滤器的执行顺序
    asp.net core 2.0 Microsoft.Extensions.Logging 文本文件日志扩展
    【技术累积】【点】【java】【30】代理模式
    【技术累积】【点】【java】【29】MapUtils
    【技术累积】【点】【java】【28】Map遍历
    【技术累积】【点】【java】【27】@JSONField
    【技术累积】【点】【java】【26】@Value默认值
    【技术累积】【点】【java】【25】Orderd
    【技术累积】【点】【java】【23】super以及重写重载
    【技术累积】【线】【java】【2】AOP
  • 原文地址:https://www.cnblogs.com/gaoshuai/p/2984865.html
Copyright © 2011-2022 走看看