I have a stored procedure name SaveNewSupplier
. Just parsing xml and insert values. But when I pass the parameter manually to execute stored procedure it works fine and values properly inserted.
I have added it on button click event, here is my code
SqlConnection sqlConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["SalesRetailConnectionString"].ConnectionString);
SqlCommand command = new SqlCommand("SaveNewSupplier", sqlConnection);
command.CommandType = CommandType.StoredProcedure;
String xml = "<DocumentElement><Table1><SupName>Madan</SupName><Code>dsad</Code><Type>dddd</Type><Address>5555</Address><Country>india</Country><City>Kol</City><State>WB</State><Nationality>In</Nationality><PhoneNo>00000000</PhoneNo><AlternateNo>ATL</AlternateNo><MobileNo>99999999</MobileNo></Table1></DocumentElement>";
command.Parameters.Add("@pParam", SqlDbType.VarChar).Value = xml;
sqlConnection.Open();
int ret = 0;
ret = command.ExecuteNonQuery();
sqlConnection.Close();
Here is my app.config file.
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
</configSections>
<connectionStrings>
<add name="SalesRetailConnectionString"
connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\SalesRetail.mdf;Integrated Security=True;User Instance=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
</configuration>
My Stored Procedure
ALTER PROCEDURE dbo.SaveNewSupplier
(
@pParam varchar(max)
)
AS
begin
declare @SupName varchar(100)
declare @Code varchar(100)
declare @Type varchar(100)
declare @Address varchar(100)
declare @Country varchar(100)
declare @City varchar(100)
declare @State varchar(100)
declare @Nationality varchar(100)
declare @PhoneNo varchar(100)
declare @AlternateNo varchar(100)
declare @MobileNo varchar(100)
declare @XMLData XML
select @XMLData = @pParam
select @SupName = Tbl.Col.value('SupName[1]', 'varchar(100)'),
@Code = Tbl.Col.value('Code[1]', 'varchar(100)'),
@Type = Tbl.Col.value('Type[1]', 'varchar(100)'),
@Address = Tbl.Col.value('Address[1]', 'varchar(100)'),
@Country = Tbl.Col.value('Country[1]', 'varchar(100)'),
@City = Tbl.Col.value('City[1]', 'varchar(100)'),
@State = Tbl.Col.value('State[1]', 'varchar(100)'),
@Nationality = Tbl.Col.value('Nationality[1]', 'varchar(100)'),
@PhoneNo = Tbl.Col.value('PhoneNo[1]', 'varchar(100)'),
@AlternateNo = Tbl.Col.value('AlternateNo[1]', 'varchar(100)'),
@MobileNo = Tbl.Col.value('MobileNo[1]', 'varchar(100)')
from @XMLData.nodes('//Table1') Tbl(Col)
begin
insert into tblSupplierMaster(SupName, Code, Type, Address, Country, City, State, Nationality, PhoneNo, AlternateNo, MobileNo)
values (@SupName, @Code, @Type, @Address, @Country,
@City, @State, @Nationality, @PhoneNo, @AlternateNo, @MobileNo)
end
end
When I am executing this code command.ExecuteNonQuery();
returning 1. but no data inserting in database. I don't get the problem.
Thank you.