0
SMSS에서 아래의 저장 프로 시저를 실행하면 작동하고 멋진 결과를 반환합니다.저장 프로 시저가 작동하지만 C에서 잘못된 열을 제공합니다 #
SQL :
EXEC @return_value = [dbo].[xxxxxx_EnergiAllTags]
@SegmentResponseID = 'xxxxxxxxxx'
하지만 내 C# 코드에서 저장 프로 시저를 실행하려고 할 때, 나는 오류 얻을 :
public DataSet GetQuery(string batchNr)
{
SqlConnection conn = new SqlConnection("xxxxxxxx");
SqlCommand command = new SqlCommand("xxxxxx_EnergiAllTags", conn);
SqlDataAdapter da = new SqlDataAdapter(command);
command.CommandType = CommandType.StoredProcedure;
command.Parameters.Add(new SqlParameter("@SegmentResponseID", batchNr));
DataSet ds1 = new DataSet();
command.CommandTimeout = 60000;
try
{
da.Fill(ds1);
return ds1;
}
catch (Exception e)
{
string ex = e.Message;
throw;
}
}
: 이것은 내 코드입니다
Invalid column name 'Value'
을
실마리가있는 사람이 문제의 원인을 파악하는 데 도움이 될 수 있습니까? 필수로
**** 업데이트 *****
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[xxxxxx_EnergiAllTags]
@SegmentResponseID AS VARCHAR(MAX)
AS
BEGIN
SET NOCOUNT ON;
CREATE TABLE #temp (TagName NVARCHAR(MAX),
StartValue NVARCHAR(MAX),
EndValue NVARCHAR(MAX),
Usage NVARCHAR(MAX)
)
INSERT INTO #temp
EXEC [dbo].[xxxxxx_EnergyTagForBatch] @BatchID = @SegmentResponseID,
@TagName = 'T06C02D01E02FQ000.PV'
INSERT INTO #temp
EXEC [dbo].[xxxxxx_EnergyTagForBatch] @BatchID = @SegmentResponseID,
@TagName = 'T06C02D01E02FQ001.PV'
SELECT * From #temp
DROP TABLE #temp
END
'xxxxxx_EnergiAllTags'의 코드를 공유 할 수 있습니까? 그리고 어떤 출력물을 반환 할 것으로 기대하십니까? –
우리는 저장 프로 시저의 코드도 볼 필요가 있다고 생각합니다. 'Value'라는 컬럼이 있습니까? 그렇다면 대괄호 ('[Value]')로 묶으십시오. –
값은 t-sql의 키워드이며 해당 유형 이름에 대괄호 (예 : [값])를 사용하십시오. – SeM