Diskuze: Binding datagridu s accdb v C# WPF .NET 4.*

C# .NET .NET (C# a Visual Basic) Binding datagridu s accdb v C# WPF .NET 4.* American English version English version

Avatar
Vít Ježek
Člen
Avatar
Vít Ježek:

Ahoj, dlouho zkouším provázat databázi v accdb do DataGridu, ale pořád se nedaří.

XAML

<Grid>
    <DataGrid x:Name="DataGridAction" IsReadOnly="True" AutoGenerateColumns="True" >
    </DataGrid>
</Grid>

XAML.CS

public MainWindow()
        {
            InitializeComponent();
            DataSet kontext = new DataSet();
            DataGridAction.ItemsSource = kontext.Action;
        }

Místo DataSetu jsem zkoušel i

string conn = String.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=..\\ListAction.accdb");

pod to jsem dával vše co jsem různě na netu našel, ale také to nevedlo k úspěchu.

V DataGridu se mi zobrazí jen vyplnění názvů sloupců (pomocí DataSetu.xsd), ale data ze souboru "ListAction.accdb" se nezobrazí.
Jo a v XAMLu jsem do DataGridu zkoušel přidat i >ItemsSource="{Bin­ding}" <, bez úspěchu. Rád bych to měl ve WPF .NET 4.*.

Poradíte? Díky!

 
Odpovědět 13.9.2015 22:27
Avatar
Odpovídá na Vít Ježek
Michal Štěpánek:

Zkus dát AutoGenerateColumns na False a nastav si sloupce ručně, např. takto jsem to dělal u jedné appky já...

<DataGrid Name="dgDelnici" Grid.Row="0" Margin="5" ItemsSource="{Binding Delnici}" AlternatingRowBackground="Azure" HeadersVisibility="Column" AutoGenerateColumns="False" GridLinesVisibility="Horizontal" SelectionMode="Single" SelectionUnit="FullRow" IsReadOnly="True" HorizontalGridLinesBrush="Silver" BorderBrush="Blue" Grid.ColumnSpan="2">
            <DataGrid.Columns>
                <DataGridTextColumn Header="ID" Binding="{Binding DelnikId}" Visibility="Hidden"/>
                <DataGridTextColumn Header="Příjmení" Binding="{Binding LastName}" Width="150"/>
                <DataGridTextColumn Header="Jméno" Binding="{Binding FirstName}" Width="120"/>
                <DataGridTextColumn Header="Profese" Binding="{Binding HlProf}" Width="150"/>
            </DataGrid.Columns>
        </DataGrid>
Editováno 14.9.2015 7:43
Nahoru Odpovědět 14.9.2015 7:42
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Vít Ježek
Člen
Avatar
Vít Ježek:

Tak vyzkoušeno, bohužel nepomohlo. Smazal jsem a znovu zavadel Dataset a také ne. Je mi trochu zvláštní, že po kompilaci a spuštění programu se mi v ´Server Explorer´ u Data Connection objeví červený křížek (spojení přerušeno), mám pocit, že to se mi nestalo když jsem dělal DataSet z SQL Server, tam mi šlo i ´AutoGenerate­Columns="True"´.
Náhodou nemáš zdroják pomocí

string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=..\\ListAction.accdb";

?

 
Nahoru Odpovědět 14.9.2015 18:20
Avatar
Odpovídá na Vít Ježek
Michal Štěpánek:

Já mám třídu, kde mám příslušný dotaz, ten mi uloží data do ObservableCollec­tion a tu pak používám pro Binding do DataGridu. Máš správně ConnectionString? Ten datový soubor máš přímo u aplikace? Zkus si poslat nějaký dotaz do DB nezávisle na tom DataGridu...

Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
Nahoru Odpovědět 15.9.2015 7:30
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.