Как получить и привязать данные к ListBox из SQLCe Db - PullRequest
2 голосов
/ 22 июля 2011

Я вставил данные в базу данных SqlCe с кодом ниже:


using (DBContacts context = new DBContacts(ConnectionString))
            {
                TblContacts tblCtc = new TblContacts();

                tblCtc.FirstName = txtBoxFirstNm.Text;
                tblCtc.LastName = txtBoxLastNm.Text;
                tblCtc.Mobile1 = txtMobile1.Text;
                tblCtc.Email1 = txtEmail1.Text;

                context.TblContacts.InsertOnSubmit(tblCtc);
                context.SubmitChanges();

                MessageBox.Show("Inserted Ok.");


            }

Вопросы:

1) Как использовать select из Linq To SQL и отобразить полученные данные?


 using (DBContacts context = new DBContacts(ConnectionString))
            {
              IEnumerable  ctc = from c in context.TblContacts select c;   


        // what to get the result and display ??

               // txtBlkFirstname.Text =   ctc.FirstName  ??
               // txtBlkLastname.Text = ctc.LastName    ??
               .....     

            }

1a) Что использовать?IQueryable или IEnumerable?

1b) Что возвращает оператор Select?Как обработать возврат данных?

1c) Как извлечь данные из Iqueryable или IEnumerable и присвоить значения элементам управления TextBlock?

------ Как связатьданные в ListBox

1 Ответ

2 голосов
/ 23 июля 2011
public List<TblContacts> GetAllContact()
    {
        using (DBContacts context = new DBContacts(ConnectionString))
        var contacts = from m in context.TblContacts select m;
        return contacts.Take(100).ToList();
    }

Нечто подобное, которое я использую в своей службе WCF, должно работать и в вашем приложении. Надеюсь,

Попытайтесь связать источник списка со значением GetAllContacts (), а затем внутри этого списка свяжите свои данные сВ отдельных полях

       <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
        <StackPanel Name="contentP" Opacity="1">
            <ListBox Height="623" Margin="-20,0,0,0" Name="listBox1" Width="473">
                <ListBox.ItemTemplate>
                    <DataTemplate>
                        <StackPanel Orientation="Horizontal" Height="132">
                            <Image Source="{Binding ImageSource}" Height="75" Width="75" VerticalAlignment="Top" Margin="15,10,10,0"/>
                            <StackPanel Width="380">
                                <ContentControl Margin="0,10,0,0" HorizontalAlignment="Left">
                                    <HyperlinkButton HorizontalAlignment="Left" Style="{StaticResource HyperlinkButtonStyle}" Content="{Binding Title}" Foreground="#FFC8AB14" NavigateUri="{Binding Link}" TargetName="_blank"/>
                             </ContentControl>
                             <TextBlock Margin="10,10,30,0" Text="{Binding Message}" Foreground="{StaticResource PhoneAccentBrush}" TextWrapping="Wrap" FontSize="20" />
                            </StackPanel>
                        </StackPanel>
                    </DataTemplate>
                </ListBox.ItemTemplate>
            </ListBox>
        </StackPanel>           
    </Grid> 

в вашем коде вы должны установить "Listbox1" ItemsSource в качестве источника вашего DBQuery, не зная, как вы это сделаете в вашем случае, как я делаю это с помощью моей службы WCF, но егочто-то похожее на это

listbox1.ItemsSource = (result of your query ("e.Result;");
...