Добрый вечер, у меня есть следующая таблицаSQLite Сумма столбца на основе диапазона дат
public class SalesRecord
{
[PrimaryKey, AutoIncrement]
public int SalesRecID { get; set; }
[Indexed]
public string SalesRecDate { get; set; }
public string SalesRecCustName { get; set; }
public string SalesRecProdName { get; set; }
public int SalesRecProdQty { get; set; }
public double SalesRecProdPrice { get; set; }
public double SalesRecTotalPrice { get; set; }
}
, и я был в состоянии отображения строк элементов в XAML ListBox.
<ListBox Name="listSalesRecord" Height="400" HorizontalAlignment="Left" Margin="0,5,0,0">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" Height="18" VerticalAlignment="Top" >
<TextBlock Text="{Binding SalesRecID}" Margin="5,0,0,0" Width="30" FontSize="14"/>
<TextBlock Text="{Binding SalesRecDate}" Margin="5,0,0,0" Width="80" FontSize="14"/>
<TextBlock Text="{Binding SalesRecCustName}" Margin="5,0,0,0" Width="80" FontSize="14"/>
<TextBlock Text="{Binding SalesRecProdName}" Margin="5,0,0,0" Width="80" FontSize="14"/>
<TextBlock Text="{Binding SalesRecProdQty}" Margin="5,0,0,0" Width="60" FontSize="14"/>
<TextBlock Text="{Binding SalesRecProdPrice, Converter={StaticResource Converter}, ConverterParameter=\{0:0.00\}}" Margin="5,0,0,0" Width="60" FontSize="14"/>
<TextBlock Text="{Binding SalesRecTotalPrice, Converter={StaticResource Converter}, ConverterParameter=\{0:0.00\}}" Margin="5,0,0,0" Width="60" FontSize="14"/>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
используя следующий запрос диапазона дат. Не было никаких проблем, потому что я знал о формате yyyy-MM-dd
.
private void btnSearchRecordDateRange_Click(object sender, RoutedEventArgs e)
{
var searchDateRange = conn.Query<SalesRecord>("SELECT * FROM SalesRecord WHERE date(SalesRecDate) BETWEEN date('" + tbxCDPFrom.Text + "') AND date('" + tbxCDPTo.Text + "')");
listSalesRecord.ItemsSource = searchDateRange;
}
, но теперь я хочу, чтобы вычислить суммы продукта Количество на основе диапазона дат, который я хочу, чтобы отобразить в текстовом поле, используя один и тот же запрос, с единственным изменением я сделал было заменить SELECT * FROM
с SELECT SUM(SalesRecProdQty) FROM
. Но эта же строка запроса не предоставила мне требуемую сумму.
private void btnSearchSumDateRange_Click(object sender, RoutedEventArgs e)
{
var searchSumProdQty = conn.Query<SalesRecord>("SELECT SUM(SalesRecProdQty) FROM SalesRecord WHERE date(SalesRecDate) BETWEEN date('" + tbxCDPFrom.Text + "') AND date('" + tbxCDPTo.Text + "')");
tbxSearchQty.Text = searchSumProdQty.ToString();
}
Я получил сообщение об ошибке в текстовом поле:
System.Collections.Generic.List`1[SalePad.Models.SalesRecord]
Может кто-нибудь сказать мне, где я сделал неправильно.
SELECT *
работал, но SELECT SUM(SalesRecProdQty)
не удалось, хотя они использовали ту же строку запроса.
Я использую SQLite.Net-PCL, и я нахожусь в WinRT для UWP, а не WPF.
Это ошибка? Попробуйте что-то вроде этого: SELECT SUM (s.SalesRecProdQty) FROM SalesRecord s WHERE date (s.SalesRecDate) BETWEEN date ('"+ tbxCDPFrom.Text +"') AND date ('"+ tbxCDPTo.Text +"') ") ; –
Привет 0______0, я все еще получаю ту же ошибку System.Collections.Generic.List'1 [SalePad.Models.SalesRecord] – Shycs