以下で取得しようとしているデータベーステーブル(変数strXML)にXMLが保存されています。これが空白になる理由は何ですか?助けてください。データベースで直接プロシージャを実行すると、正常に機能しています。
try
{
// Open the database connection
using (SqlConnection myConn = my.openConnection("~",PConnectionString"))
{
// Initialize the SQL command object.
using (SqlCommand myCOmmand = new SqlCommand("getCycleXML", myConn))
{
myCOmmand.CommandType = CommandType.StoredProcedure;
// Add the parameters
SqlParameter parameter2 = new SqlParameter("@emailID", SqlDbType.NVarChar, 128);
parameter2.Value = strEmailID;
parameter2.Direction = ParameterDirection.Input;
myCOmmand.Parameters.Add(parameter2);
SqlParameter parameter1 = new SqlParameter("@pCode", SqlDbType.VarChar, 50);
parameter1.Value = strPCode;
parameter1.Direction = ParameterDirection.Input;
myCOmmand.Parameters.Add(parameter1);
SqlParameter parameter7 = new SqlParameter("@cID", SqlDbType.Int);
parameter7.Direction = ParameterDirection.Input;
parameter7.Value = icID;
myCOmmand.Parameters.Add(parameter7);
SqlParameter parameter9 = new SqlParameter("@cycleXML", SqlDbType.Xml);
parameter9.Direction = ParameterDirection.Output;
myCOmmand.Parameters.Add(parameter9);
SqlParameter parameter10 = new SqlParameter("@msg", SqlDbType.VarChar, 50);
parameter10.Direction = ParameterDirection.Output;
myCOmmand.Parameters.Add(parameter10);
SqlParameter parameter11 = new SqlParameter("@Success", SqlDbType.Int);
parameter11.Direction = ParameterDirection.Output;
myCOmmand.Parameters.Add(parameter11);
//Execute the command
myCOmmand.ExecuteNonQuery();
// Read the values of the output parameters
strXML = myCOmmand.Parameters["@cycleXML"].Value.ToString();
=================================================
ストアドプロシージャの定義は次のとおりです。
USE [DMac]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[getCycleXML]
@emailID Nvarchar(128),
@cID varchar(50),
@pCode varchar(50),
@cycleXML xml output,
@Success int output,
@msg varchar(50) output
AS
BEGIN
select XMLDefectCycle from dbo.CycleXML where EmailID=@emailID and PCode=@pCode and CID=@cID
END
==============================
コードが空白のXMLとして返される理由。データベース内の指定されたパラメーターについて、データベースからのXMLを期待していることを確認しました。