IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

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

Aktivity
Avatar
Ježek Vít :13.9.2015 22:27

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
Nemyslím, tedy nejsem.
Avatar
Odpovídá na Ježek Vít
Michal Štěpánek:14.9.2015 7:42

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
Ježek Vít :14.9.2015 18:20

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
Nemyslím, tedy nejsem.
Avatar
Odpovídá na Ježek Vít
Michal Štěpánek:15.9.2015 7:30

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í
+2,50 Kč
Ř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.