Я хочу вернуть данные, находящиеся между @from и @to. Дата в БД - тип nvarchar (max). Sql отлично, потому что, когда я устанавливаю @from и @to и запускаю sql-код в sql-сервере, верните правильный результат. XML не пуст, есть имена столбцов, но не столбцы данных.SQL не возвращает данные
public static DataSet Report(string from, string to)
{
DataSet ds = new DataSet("Rez");
using (SqlConnection conn = new SqlConnection(conf.ConnStrVienaSas))
{
using (SqlCommand cmd = new SqlCommand(FileReaderHelper.ReadSQLText("ExternalReports.sql"), conn))
{
cmd.CommandType = CommandType.Text;
cmd.CommandTimeout = 180;
cmd.Parameters.Add("@from", SqlDbType.NVarChar).Value = from;
cmd.Parameters.Add("@to", SqlDbType.NVarChar).Value = to;
using (SqlDataAdapter adap = new SqlDataAdapter(cmd))
try
{
adap.Fill(ds);
}
catch (Exception ex)
{
ds = WSErrorExtenderHelper.CreateErrorDS(ex.ToString() /*"Error reading data from DB."*/);
}
}
}
return ds;
}
фрагмент SQL:
SELECT [A].[FieldValue] AS Created_at, [B].[Created_by], [C].[Code1],
[D].[Code2], [E].[Code3], [F].[Code4]
FROM [dbo].[TEMP] A with (nolock)
INNER JOIN [dbo].[TEMP2] B with (nolock)
ON [A].[UserDefinedRowId] = [B].[UserDefinedRowId]
INNER JOIN [dbo].[TEMP3] C with (nolock)
ON [A].[UserDefinedRowId] = [C].[UserDefinedRowId]
INNER JOIN [dbo].[TEMP4] D with (nolock)
ON [A].[UserDefinedRowId] = [D].[UserDefinedRowId]
INNER JOIN [dbo].[TEMP5] E with (nolock)
ON [A].[UserDefinedRowId] = [E].[UserDefinedRowId]
INNER JOIN [dbo].[TEMP6] F with (nolock)
ON [A].[UserDefinedRowId] = [F].[UserDefinedRowId]
WHERE ([A].[FieldValue] between @from and @to)
ли дата строки в нужном формате? – drneel
Как выглядит SQL? Какова полная трассировка стека исключений? –
Почему поле Date имеет значение nvarchar (max)? –