Почему не заполняется DataTable?

147
25 сентября 2019, 09:20

Так выглядит метод, который возвращает datatable после выполнения процедуры:

public static DataTable GetTours(string fromCity, string toCountry, string departureDate, int amountNihgts, int amountAdults)
    {
        using (SqlConnection connection = new SqlConnection(ConnectionString))
        {
            string sql = "[dbo].[GetToursLits]";
            using (SqlCommand command = new SqlCommand(sql, connection))
            {
                DataTable dataTable = new DataTable();
                command.CommandType = CommandType.StoredProcedure;
                command.Parameters.Add("@FromCity", SqlDbType.NVarChar);
                command.Parameters["@FromCity"].Value = fromCity;
                command.Parameters.Add("@ToCountry", SqlDbType.NVarChar);
                command.Parameters["@ToCountry"].Value = toCountry;
                command.Parameters.Add("@departureDate", SqlDbType.Date);
                command.Parameters["@departureDate"].Value = DateTime.ParseExact(departureDate, "dd-MM-yyyy", System.Globalization.CultureInfo.InvariantCulture);
                command.Parameters.Add("@amountNihgts", SqlDbType.Int);
                command.Parameters["@amountNihgts"].Value = amountNihgts;
                command.Parameters.Add("@amountAdults", SqlDbType.Int);
                command.Parameters["@amountAdults"].Value = amountAdults;
                connection.Open();
                using (SqlDataAdapter dataAdapter = new SqlDataAdapter(command))
                {
                    dataAdapter.Fill(dataTable);
                    connection.Close();
                }                    
                return dataTable;
            }
        }
    }

При его вызове он возвращает пустую DataTable. Процедура выглядит так:

CREATE PROCEDURE [dbo].[GetToursLits](@fromCity nvarchar, @toCountry nvarchar, @departureDate date, @amountNihgts int, @amountAdults int)
AS
BEGIN
SELECT * FROM dbo.Tours 
END

Если выполнить код с Begin до End, то в Massege появится таблица с данными. Может с процедурой что-то не так?

Answer 1

Благодаря Alexander Petrov разобрался:

public static DataTable GetTours(string fromCity, string toCountry, string departureDate, int amountNihgts, int amountAdults)
    {
        DateTime departureDateParsed = DateTime.ParseExact(departureDate, "dd-MM-yyyy", System.Globalization.CultureInfo.InvariantCulture);
        using (SqlConnection connection = new SqlConnection(ConnectionString))
        {
            string sql = "[dbo].[GetToursLists]";
            using (SqlCommand command = new SqlCommand(sql, connection))
            {
                DataTable dataTable = new DataTable();
                command.CommandType = CommandType.StoredProcedure;
                command.Parameters.Add("@fromCity", SqlDbType.NVarChar, 30);
                command.Parameters["@fromCity"].Value = fromCity;
                command.Parameters.Add("@toCountry", SqlDbType.NVarChar, 30);
                command.Parameters["@toCountry"].Value = toCountry;
                command.Parameters.Add("@departureDate", SqlDbType.Date);
                command.Parameters["@departureDate"].Value = departureDateParsed;
                command.Parameters.Add("@amountNights", SqlDbType.Int);
                command.Parameters["@amountNights"].Value = amountNihgts;
                command.Parameters.Add("@amountAdults", SqlDbType.Int);
                command.Parameters["@amountAdults"].Value = amountAdults;
                using (SqlDataAdapter dataAdapter = new SqlDataAdapter(command))
                {
                    dataAdapter.Fill(dataTable);
                }
                return dataTable;
            }
        }
    }
READ ALSO
C# Automapper. Ошибка маппинга GUID и string

C# Automapper. Ошибка маппинга GUID и string

Есть 2 модели DocumentBLL и DocumentStatusDb

151
SendMessage WinApi в photoshop

SendMessage WinApi в photoshop

Пишу программу, которая должна взаимодействовать с photoshop(Это не плагин)Использовал Cursor

146
Почему спрайт в unity не перекрывает обьект?

Почему спрайт в unity не перекрывает обьект?

Ситуация следующаяЯ делаю 2д игру, там некий генератор генерирует шарики

109