JayantaChatterjee Ответов: 1

Странно, но никаких записей из базы данных не извлекается.


Всем Привет,
Я столкнулся с большой проблемой с моим запросом select, и я не могу понять ее.
Проблема: Я пытаюсь извлечь записи из таблицы базы данных в течение заданной даты, но никакие записи не возвращаются.
Мой код:
public SQLiteDataReader GetByDate(DateTime start, DateTime end)
        {
            SQLiteDataReader reader = null;
            using (SQLiteDataAdapter _adpt = new SQLiteDataAdapter())
            {
                _adpt.SelectCommand = new SQLiteCommand();
                _adpt.SelectCommand.Connection = new SQLiteConnection(ConnectionString);
                _adpt.SelectCommand.Connection.Open();
                _adpt.SelectCommand.CommandType = CommandType.Text;
                _adpt.SelectCommand.CommandText = Scripts.SalesDetails.GetByDate;
                Console.WriteLine("Start : {0}", start.ToString("yyyy-MM-dd hh:mm:ss"));
                Console.WriteLine("end : {0}", end.ToString("yyyy-MM-dd hh:mm:ss"));
                _adpt.SelectCommand.Parameters.AddWithValue("@start","'"+ start.ToString("yyyy-MM-dd hh:mm:ss")+"'");
                _adpt.SelectCommand.Parameters.AddWithValue("@end","'" +end.ToString("yyyy-MM-dd hh:mm:ss")+"'");
                reader = _adpt.SelectCommand.ExecuteReader();
                //Console.WriteLine(reader.HasRows);
            }
            return reader;
        }

Запрос есть:
public static string GetByDate = "select sd.InvNo sID,cust.ID cID,cust.name name,sd.InvDate, sd.netTotal Total,(sd.netTotal- ct.due) DueAmt,sd.ID from (SalesDetails sd inner join Customers cust on sd.custID =cust.ID ) left join (select sum(amount) due,SalesID from custTrans group by SalesID) ct on sd.ID=ct.SalesID where sd.InvDate between @start and @end";

У меня есть записи на моей таблице, и я запустил тот же код в браузере SQLite, чтобы вернуть записи(как я и ожидал).
пожалуйста, помогите мне с этим..

заранее спасибо.

Что я уже пробовал:

мой запрос SQLite браузер(это прекрасно работает):-
select sd.InvNo sID,cust.ID cID,cust.name name,sd.InvDate, sd.netTotal Total,(sd.netTotal- ct.due) DueAmt,sd.ID from (SalesDetails sd inner join Customers cust on sd.custID =cust.ID ) left join (select sum(amount) due,SalesID from custTrans group by SalesID) ct on sd.ID=ct.SalesID where sd.InvDate between '2017-05-14 11:09:02' and '2017-06-14 11:09:03'

Я также удаляю одинарную кавычку из значения параметра, но ничего не работает..
_adpt.SelectCommand.Parameters.AddWithValue("@start",start.ToString("yyyy-MM-dd hh:mm:ss"));
_adpt.SelectCommand.Parameters.AddWithValue("@end",end.ToString("yyyy-MM-dd hh:mm:ss"));

1 Ответов

Рейтинг:
2

Mehdi Gholam

Попробовать это:

_adpt.SelectCommand.Parameters.AddWithValue("@start",start);
_adpt.SelectCommand.Parameters.AddWithValue("@end",end);


JayantaChatterjee

Я тоже пробовал, но безрезультатно.. :-(

Mehdi Gholam

Попробуйте гггг-ММ-ДД чч:мм:СС

JayantaChatterjee

то же самое, никакого результата..
я что-нибудь пропустил?