Click here to Skip to main content
15,889,116 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
public int UpdatePlantContacts(int PlantID, List<string> PlantContacts)
{
int i = 0;
DataTable dt = new DataTable("PlantAreaContact");
dt.Columns.Add("PlantAreaID",System.Type.GetType("System.Int"));
dt.Columns.Add("PlantAreaContact", System.Type.GetType("System.String"));
dt.Columns.Add("IsAreaHead", Type.GetType("System.Boolean"));
dt.Columns.Add("AreaEmailID", Type.GetType("System.String"));
dt.Columns.Add("LoginPassword", Type.GetType("System.String"));
dt.Columns.Add("SystemPermission", Type.GetType("System.String"));
foreach (DataRow dr in dt.Rows )
{
DataRow newRow = dt.NewRow();
dt.Rows.Add("~/XmlData/PlantAreaContacts");
}
StringWriter XMLWriter = new StringWriter();
dt.WriteXml(XMLWriter);
System.Xml.Linq.XElement XMLUncertanity = System.Xml.Linq.XElement.Parse(XMLWriter.ToString());
try
{
i = plcon.UpdatePlantContacts(PlantID, dt);
}
catch
{
throw new System.NotImplementedException();
}
if (i <= 0)
{
return 0;
}
else
{
return i;
}
}




public int UpdatePlantContacts(int PlantID, List<string> PlantContacts)
{
int i = 0;
DataTable dt = new DataTable("PlantAreaContact");
dt.Columns.Add("PlantAreaID",System.Type.GetType("System.Int"));
dt.Columns.Add("PlantAreaContact", System.Type.GetType("System.String"));
dt.Columns.Add("IsAreaHead", Type.GetType("System.Boolean"));
dt.Columns.Add("AreaEmailID", Type.GetType("System.String"));
dt.Columns.Add("LoginPassword", Type.GetType("System.String"));
dt.Columns.Add("SystemPermission", Type.GetType("System.String"));
foreach (DataRow dr in dt.Rows )
{
DataRow newRow = dt.NewRow();
dt.Rows.Add("~/XmlData/PlantAreaContacts");
}
StringWriter XMLWriter = new StringWriter();
dt.WriteXml(XMLWriter);
System.Xml.Linq.XElement XMLUncertanity = System.Xml.Linq.XElement.Parse(XMLWriter.ToString());
try
{
i = plcon.UpdatePlantContacts(PlantID, dt);
}
catch
{
throw new System.NotImplementedException();
}
if (i <= 0)
{
return 0;
}
else
{
return i;
}
}

This is my BAL code, I have xmldata in my vs2010 in my folder I want to insert the data in that and after that the xml data should insert using stored proc, below is my DAL

public int UpdatePlantContacts(int PlantID, DataTable PlantContacts)
{
try
{
int result = -1;
sqlcmd = fnProcedure("sp_UpdatePlantAreaContacts");
SqlParameter par1 = sqlcmd.Parameters.Add("@PlantAreaID", SqlDbType.Int);
par1.Value = PlantID;
SqlParameter par2 = sqlcmd.Parameters.Add("@EmployeeID", SqlDbType.Int);
par2.Value = 1015;
//SqlParameter par3 = sqlcmd.Parameters.Add("@FilePath", SqlDbType.VarChar);
//par3.Value = "E:/QONE/P218/ENG/PlantAreaContactsXML.xml";
SqlParameter par4 = sqlcmd.Parameters.Add("@Return", SqlDbType.Int);
par4.Direction = ParameterDirection.Output;
try
{
fnOpen();
sqlcmd.ExecuteNonQuery();
result = Convert.ToInt32(sqlcmd.Parameters["@Return"].Value);
fnClose();
}
catch (Exception)
{
fnClose();
result = -1; ;
}
return result;
//Conn.Close();
//Conn.Dispose();
}
catch (Exception Ex)
{
CreateErrorLog Err = new CreateErrorLog();
Err.ErrorLog(HttpContext.Current.Server.MapPath("Logs/ErrorLog"), Ex.Message);
throw new System.NotImplementedException();
}
finally
{
}
}
And my stored proc is below
ALTER PROCEDURE [dbo].[SP_PlantcontactUpdate] @PlantAreaID int, @Doc XML
AS
BEGIN
IF OBJECT_ID('tempdb..##temp') IS NOT NULL
DROP TABLE ##temp

select *
into ##temp from dbo.PlantAreaContact where PlantAreaID= @PlantAreaID
begin try
delete from dbo.PlantAreaContact where PlantAreaID= @PlantAreaID

DECLARE @idoc int

EXEC sp_xml_preparedocument @idoc OUTPUT, @doc
-- Execute a SELECT statement that uses the OPENXML rowset provider.
insert into dbo.PlantAreaContact
SELECT @PlantAreaID, *
FROM OPENXML (@idoc, '/DocumentElement/PlantAreaContacts',2)
WITH (PlantAreaContact varchar(50),IsAreaHead int,AreaEmailID varchar(50),
AreaMobileNumber varchar(25),LoginPassword varbinary(10),SystemPermission varchar(25))

end try

begin catch

delete from dbo.PlantAreaContact where PlantAreaID= @PlantAreaID
insert into dbo.PlantAreaContact select * from ##temp
drop table ##temp

RAISERROR ('Failed PlantAreaContact',16,1);
end catch
END
Posted
Comments
Richard MacCutchan 17-Feb-14 6:17am    
Please edit the above and use <pre> tags around the code blocks so it is readable. You also need to add some detail as to exactly what your problem is.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900