Так выглядит метод, который возвращает 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 появится таблица с данными. Может с процедурой что-то не так?
Благодаря 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;
}
}
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Пишу программу, которая должна взаимодействовать с photoshop(Это не плагин)Использовал Cursor
Ситуация следующаяЯ делаю 2д игру, там некий генератор генерирует шарики