У меня есть следующий код в консольном приложении C#, который пытается получить данные из базы данных SQL:
cmd = new SqlCommand("spGetRealtime", new SqlConnection(_connectString));
cmd.CommandType = CommandType.StoredProcedure;
da = new SqlDataAdapter();
da.SelectCommand = cmd;
ds = new DataSet();
da.Fill(ds);
Вот код хранимой процедуры, с которым я работаю. Это не мой код, я довольно ржавый с SQL.
USE [GridLab_Foundation]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER OFF
GO
ALTER PROCEDURE [dbo].[spGetRealtime]
AS
begin
SELECT [DEVICE_ID], [DEVICE_DESC], [DEVICE_PLC_POINT], [DEVICE_CUR], [DEVICE_DES] FROM [FOUNDATION_ANALOG_VALUES] ORDER BY DEVICE_ID ASC
/*SELECT [DEVICE_ID], [DEVICE_DESC], [DEVICE_PLC_POINT], [DEVICE_CUR], [DEVICE_DES] FROM [FOUNDATION_DIGITAL_VALUES] ORDER BY DEVICE_ID ASC*/
/*SELECT [DEVICE_ID], [DEVICE_DESC], [DEVICE_PLC_POINT], [DEVICE_CUR], [DEVICE_DES] FROM [FOUNDATION_FLOAT_VALUES] ORDER BY DEVICE_ID ASC*/
/*SELECT [DEVICE_ID], [DEVICE_DESC], [DEVICE_PLC_POINT], [DEVICE_CUR], [DEVICE_DES] FROM [FOUNDATION_INT_VALUES] ORDER BY DEVICE_ID ASC*/
end
Я ожидаю 1 таблицу со 146 строками, но я получаю 3 таблицы с 80, 11 и 9 строками соответственно. Я проверил фактическую таблицу, и там все 146 строк. Есть идеи о том, что может быть причиной этого?
Как мы можем узнать об этом без кода процедуры и определений таблиц? Я предлагаю вам избавиться от вашего соединения и адаптера с блоками using
.
нужен код хранимой процедуры SQL Server
Я добавил код хранимой процедуры. Дайте мне знать, если вы могли бы использовать от меня дополнительную информацию.
Добавьте код процедуры к вашему вопросу.