執行我有一個存儲過程的名稱SaveNewSupplier
。只需解析xml並插入值。但是當我手動傳遞參數來執行存儲過程時,它工作正常並且值正確插入。 我將它上按鈕的單擊事件,這裏是我的代碼存儲過程不從C#應用程序窗口
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();
這是我的app.config文件。
<?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>
我當我執行此代碼command.ExecuteNonQuery();
返回1,但在數據庫中沒有數據將存儲過程
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
。我沒有解決問題。
謝謝。
其中是存儲過程的來源? – Hogan
對不起,但這是什麼(** command.Parameters.Add(「@ pParam」,SqlDbType.VarChar).Value = xml; **)是什麼意思?你是否將sp中的參數分開? –
試試這個:'command.Parameters.Add(新的SqlParameter( 「@ pParam」,XML));' – PiLHA