• 重拾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();
  • 相关阅读:
    怎么查看京东店铺的品牌ID
    PPT编辑的时候很卡,放映的时候不卡,咋回事?
    codevs 1702素数判定2
    codevs 2530大质数
    codevs 1488GangGang的烦恼
    codevs 2851 菜菜买气球
    hdu 5653 Bomber Man wants to bomb an Array
    poj 3661 Running
    poj 1651 Multiplication Puzzle
    hdu 2476 String Painter
  • 原文地址:https://www.cnblogs.com/gaoshuai/p/2984865.html
Copyright © 2020-2023  润新知