C# 获取sql内容,生成xml文件,并且以webservice形式发送

图片说明

初学WEBSERVICE,现在要做一个接口发送数据给第三方,要求:获取sql内容,生成xml文件,并且以webservice形式发送,供第三方调用!

上图为样例,请各位大佬务必提供源代码及注释!最好留下邮箱,及时请教!

    [WebMethod]
    public string GetPatientMasterIndex(string PatientId, string InpNO)
    {
        using (SqlConnection con = new SqlConnection("略"))//你的链接
        {
            con.Open();
            DataTable dt = new DataTable();
            if (PatientId != "")//第一个唯一标识
            {
                SqlDataAdapter da = new SqlDataAdapter("SELECT (SELECT PatientId,InpNO,Name,NamePhonetic,Sex,DateOfBirth,BirthPlace,Citizenship,Nation,IDNO FROM [table] WHERE PatientId=tb.PatientId FOR XML PATH('')) AS tbList FROM [table] tb where PatientId='" + PatientId + "'", con);//生成XML的SQL语句
                da.Fill(dt);
                return dt.Rows.Count == 0 ? "" : dt.Rows[0][0].ToString();//返回字符串,无此ID返回空字符
            }
            else if (InpNO != "")//第二个唯一标识
            {
                SqlDataAdapter da = new SqlDataAdapter("SELECT (SELECT PatientId,InpNO,Name,NamePhonetic,Sex,DateOfBirth,BirthPlace,Citizenship,Nation,IDNO FROM [table] WHERE InpNO=tb.InpNO FOR XML PATH('')) AS tbList FROM [table] tb where InpNO='" + InpNO + "'", con);
                da.Fill(dt);
                return dt.Rows.Count == 0 ? "" : dt.Rows[0][0].ToString();
            }
            else
            {
                return "";//两ID均无,返回空字符
            }
        }
    }

邮箱:460302176@qq.com

做一个接口发送数据给第三方?如果是你自己写接口 , 新建服务项目,直接写方法就可以了。服务地址输入?wsdl就是对应xml文件。

新建一个web service类型的源代码。
然后默认给你生成了一些简单的代码
类似下面的
[WebMethod]
int foo(int a, int b)
{
return a + b;
}
你可以看出来,和定义一般的方法是一样的。
你只要定义一个类,包括你的返回字段
定义一个函数,和上面的foo类似,名字叫 GetPatientMasterIndex
参数和你的文档一样,你服务器查询数据库,然后返回一个对象,包括他要的字段,就ok
最后把这个程序传到阿里云之类的服务器上,作为asp.net 程序部署到iis上,就可让第三方访问了。

这个不是挺简单的么。。分3快方法实现,1.sql数据拿出来存到实体类中,2.实体类转xml,3.wsdl服务引用,转换出来的xml调用方法就好了。