2016-01-07 2 views
0

В wpf у меня есть значение в столбце базы данных sqlite как true для одной записи, но оно не отображается как отметьте в столбце datagrid. Может кто-нибудь помочь? XAML код:в C#, wpf, как вы устанавливаете/присваиваете значение, хранящееся в базе данных, флажком в datagrid, основанном в базе данных sqlite.

<DataGrid x:Name="DG_VendorPur" AutoGenerateColumns="False" ItemsSource="{Binding VendorProducts}" Grid.Row="7" Grid.RowSpan="4" FontFamily="Franklin Gothic Medium" FontSize="18" Background="#FFEBDCEB" AlternatingRowBackground="#FFDAE7F5" SelectionMode="Single" ColumnWidth="*" Grid.Column="5" Grid.ColumnSpan="6" SelectedCellsChanged="DG_VendorPur_SelectedCellsChanged"> 
        <DataGrid.Columns> 
         <DataGridCheckBoxColumn x:Name="DG_V_IsDefault" Header=" Preferred " MinWidth="50" Width="*" Binding="{Binding Path=VP_isVendorActive, Mode=TwoWay}" SortDirection="Ascending" IsThreeState="True" /> 
         <DataGridTextColumn  x:Name="DG_Vname"  Header=" Vendor Name " MinWidth="50" Width="*" Binding="{Binding Path=VP_Vname}"  FontFamily="Calibri" /> 
         <DataGridTextColumn  x:Name="DG_VItemNo"  Header=" Vendor SKU# " MinWidth="50" Width="*" Binding="{Binding Path=VP_VendorSKU}" FontFamily="Calibri"/> 
         <DataGridTextColumn  x:Name="DG_VCaseCost" Header=" Case Cost " MinWidth="50" Width="*" Binding="{Binding Path=VP_SKUcaseCost}" FontFamily="Calibri"/> 
         <DataGridTextColumn  x:Name="DG_VQtyPerCase" Header=" Qty/Case "  MinWidth="50" Width="*" Binding="{Binding Path=VP_QtyInCase}" FontFamily="Calibri"/> 
        </DataGrid.Columns> 
       </DataGrid> 

xaml.cs:

sqliteCon.Open(); 
       string Product = TB_PscanID.Text; 
       cmd.CommandText = "Select VP_Vname,VP_VendorSKU,VP_SKUcaseCost,VP_QtyInCase from VendorProducts where VP_ProductID= @WORD"; 
       cmd.Parameters.AddWithValue("@word", Product); 
       cmd.Prepare(); 
       cmd.ExecuteNonQuery(); 
       SQLiteDataAdapter SDAdap = new SQLiteDataAdapter(cmd); 
       DataTable DT = new DataTable("VendorProducts"); 
       SDAdap.Fill(DT); 

       DG_VendorPur.ItemsSource = DT.DefaultView; 
       DataRecord = DG_VendorPur.Items.Count; 
       SDAdap.Update(DT); 
       sqliteCon.Close(); 
+0

Как вы храните логическое значение в БД SQLite? – axlj

+0

@axlj: true или false. – Harry

+0

Правильно ли вы используете шаблон дизайна MVVM? Если вы используете файл с кодом, то это не так. Как выглядит ваш класс ViewModel? – Dai

ответ

1

Проблема с вашим запросом:

SELECT VP_isVendorActive, /* You're missing this column */ 
     VP_Vname, 
     VP_VendorSKU, 
     VP_SKUcaseCost, 
     VP_QtyInCase 
FROM VendorProducts WHERE VP_ProductID= @WORD 
+0

Спасибо. Я добавлю этот столбец последним, поэтому я забыл !!! – Harry

 Смежные вопросы

  • Нет связанных вопросов^_^