Hello I am Passing xml to the Store Procedure and It is compiling but no row inserted into the database.
My Code
foreach (int item in objDirectory.PhotoId)
{
//roots = roots + "<row DirectoryId='"+objDirectory.DirectoryId+"'PhotoId='" +item+"'CreatedBy='"+"Admin"+"'ModifiedBy='"+"Admin"+"'/>";
roots = roots + "<row DirectoryId= '" + objDirectory.DirectoryId + "' PhotoId='" + item + "' CreatedBy ='" + "Admin" + "' ModifiedBy ='" + "Admin" + "'/>";
}
PhotoIds = string.Format(PhotoIds, roots);
objDirectory.SavePhotoId(PhotoIds);
Save Method
public void SavePhotoId(string PhotoId)
{
SqlTransaction tran = null;
try
{
SqlParameter[] arParams = new SqlParameter[3];
m_objConn = new SqlConnection(m_strConn);
m_objConn.Open();
tran = m_objConn.BeginTransaction();
arParams[0] = new SqlParameter("@PhotoID", PhotoId);
SqlHelper.ExecuteNonQuery(tran, CommandType.StoredProcedure, "InsertUpdatePhotIdInAlbum", arParams);
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (m_objConn.State == ConnectionState.Open)
{
m_objConn.Close();
m_objConn = null;
}
}
}
Store Procedure:
CREATE Procedure [dbo].[InsertUpdatePhotIdInAlbum]
@PhotoID xml=null
As
Begin
set nocount on;
if @PhotoID IS NULL
Begin
Return;
End
Declare @PhotoAlbumDetail
table(AlbumID int,PhotoId int,CreatedBy varchar(50),ModifiedBy varchar(50))
insert into @PhotoAlbumDetail(AlbumID,PhotoID,CreatedBy,ModifiedBy)
select
t.c.value('./@DirectoryId','int')as AlbumID,
t.c.value('./@PhotoId','int')as PhotoID,
t.c.value('./@CreatedBy','varchar(50)')as CreatedBy,
t.c.value('./@ModifiedBy','varchar(50)')as ModifiedBy
from @PhotoID.nodes('/root/row') t(c);
INSERT INTO [dbo].[tbl_PhotoAlbumDetail]
(
AlbumID,
PhotoId,
CreatedBy,
ModifiedBy) SELECT p.AlbumID, p.PhotoId, p.CreatedBy, p.ModifiedBy from @PhotoAlbumDetail p
End
No comments:
Post a Comment