Hi please tell me how to generate XML file from Table in SQL Server using Query. My Query is,
select JobTitle as title,PostedDate as date from Jobs
C# code,
protected void btnXML_Click(object sender, EventArgs e)
{
try
{
DataSet dsJobsDetails = new DataSet();
dsJobsDetails = GetJobDetails();
string fileLoc = @"C:\JobDocuments\jobsxml.xml";
FileStream fs = null;
fs = File.Create(fileLoc);
fs.Close();
if (File.Exists(fileLoc))
{
dsJobsDetails.WriteXml(fileLoc);
}
}
catch { }
}
private DataSet GetJobDetails()
{
DataSet ds = null;
SQLProvider provider = new SQLProvider();
SqlParameter[] paramCandidate = new SqlParameter[2];
try
{
paramCandidate[0] = provider.MakeParameter("JobID", SqlDbType.VarChar, "0");
paramCandidate[1] = provider.MakeParameter("AccountID", SqlDbType.Int, "0");
ds = provider.RunProcedure("Usp_GetJobsDetailsForXML", paramCandidate);
}
catch (Exception ex)
{
SetLastError(ex);
paramCandidate = null;
provider = null;
ds = null;
}
finally
{
paramCandidate = null;
provider = null;
}
return ds;
}
My stored procedure is,
CREATE PROCEDURE [dbo].[Usp_GetJobsDetailsForXML]
(
@JobID varchar(8000),
@AccountID int
)
AS
BEGIN
SET NOCOUNT ON;
select JobTitle as title,PostedDate as date,JobDescription as [description] from Jobs
where JobID in (@JobID)
--FOR XML PATH('Jobs')
END
It is giving output as follows,
<NewDataSet>
<Table>
<title>DBA</title>
<date>2014-09-30</date>
</Table>
<Table>
<title>Manager</title>
<date>2014-09-30</date>
</Table>
</NewDataSet>
Here i want to add Root node as jobs and sub root node as job. I tried
select JobTitle as title,PostedDate as date from Jobs FOR XML PATH('jobs') it is not working.
I want output as follows,
<jobs>
<job>
<title>
<![CDATA[ DBA ]]>
</title>
<date>
<![CDATA[ 2014-09-30 ]]>
</date>
</job>
<job>
<title>
<![CDATA[ Manager ]]>
</title>
<date>
<![CDATA[ 2014-09-30 ]]>
</date>
</job>
<jobs>
Thank you ..