NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
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 – První databázová aplikace v C# (LINQ to SQL)

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
Odpovídá na Jan Vargovský
Michal Žůrek - misaz:26.7.2013 17:45

přečetl jsis ten článek? Mě jde o to jak v C# docílím aby my databáze vrátila výsledek onoho dotazu. V php na PDO zavolám query, jenže v C# mi žádné $db->query(...) nebude fungovat.

 
Odpovědět
26.7.2013 17:45
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na Michal Žůrek - misaz
Jan Vargovský:26.7.2013 17:48

Ne nečetl. Říkáš, že umíš vytvořít sql query, tak se ptám jak jsi ho vytvořil. Klidně ti můžu říct třídy co k tomu potřebuješ a poraď si sám...

 
Odpovědět
26.7.2013 17:48
Avatar
Odpovídá na Michal Žůrek - misaz
Jiří Košata - kosata50:26.7.2013 17:58

Nějak mi pořád jasný, jestli se teda chceš na databázi dotazovat přes LINQ to SLQ, nebo chceš jen spustit klasický SQL dotaz a všechno si zpracovávat sám. Píšeš pod článek o LINQ ale řešíte tady klasický dotazy. :)

 
Odpovědět
26.7.2013 17:58
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na Michal Žůrek - misaz
Jan Vargovský:26.7.2013 17:58

Query se tvoří v třídě SqlCeCommand, ten potom odešleš v třídě SqlCeDataAdapter jako paramarametr společně s databází(SqlCe­Connection) a ta má metodu Fill() kde parametr bere třídu DataTable a potom v tom DataTable máš výslednou odpověď - tabulku (a né string nebo jak jsi to nazval) pak už si naplníš ten DataGridView jako bylo úkázáno tady v tutoriálu.
Btw když budeš insertovat a nebo cokoliv dělat s databázi tak jí musíš nejdřív otevřít a na konci zase zavřít.

Jiří Košata - kosata50 Tím SQL dotazem to je poněkud složitější no, viz tento post.

Editováno 26.7.2013 18:00
 
Odpovědět
26.7.2013 17:58
Avatar
JOF
Tvůrce
Avatar
Odpovídá na keke1
JOF:27.12.2013 11:18

Pluralizaci názvů tabulek je možné u LinqToSql vypnout.
Pokud máte názvy DB tabulek česky, tak je to možná i lepší.
Podívej se do menu Tools->Options->Database Tools->O/R Designer.
Tam je položka Pluralization of names. Nemáš enabled nastaveno na false?

 
Odpovědět
27.12.2013 11:18
Avatar
Tommy
Člen
Avatar
Tommy:4.1.2014 18:26

Vo WPF to nefunguje. Nepozná príkaz dataGridViewSlo­vicka.DataSou­rce = kontext.Words;

Vedel by niekto poradiť ako sa to dá obísť?

 
Odpovědět
4.1.2014 18:26
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Tommy
David Hartinger:4.1.2014 18:43

Samozmořejmě, že to nefunguje v jiné technologii, než pro kterou to je psané. Pokud sis zde o WPF něco přečetl, tak budeš vědět jak to přepsat.

Odpovědět
4.1.2014 18:43
New kid back on the block with a R.I.P
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na Tommy
Jan Vargovský:4.1.2014 18:43

Použij vlastnost ItemsSource nebo to udělej v XAMLu pomocí Bindingu.

Editováno 4.1.2014 18:44
 
Odpovědět
4.1.2014 18:43
Avatar
Tommy
Člen
Avatar
Odpovídá na Jan Vargovský
Tommy:4.1.2014 21:46

Skúsil som to takto.
Tu je kód:
namespace WPF_SQLdataba­za4._1._2014
{
public partial class MainWindow : Window
{
DataClasses1Da­taContext kontext = new DataClasses1Da­taContext();

public MainWindow()
{
InitializeCom­ponent();
}
private void BTnacitajOnClic­k(object sender, RoutedEventArgs e)
{
dataGridViewSlo­vicka.ItemsSou­rce = kontext.Words;
}
}
}

A tu je XAML:
<Window x:Class="WPF_SQLda­tabaza4._1._2014­.MainWindow"
xmlns="http:/­/schemas.micro­soft.com/winfx/2006/xam­l/presentation"
xmlns:x="http­://schemas.mi­crosoft.com/win­fx/2006/xaml"
Title="slovnicek" Height="357" Width="340" WindowStartup­Location="Cen­terScreen" ResizeMode="Can­Minimize">
<Grid Margin="10">
<DataGrid AutoGenerateCo­lumns="False" Height="260" HorizontalAlig­nment="Center" Name="dataGrid­ViewSlovicka" VerticalAlignmen­t="Top" Width="300" >
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Id}" Width="100" Header="ID"/>
<DataGridTextColumn Binding="{Binding Czech}" Width="100" Header="Czech"/>
<DataGridTextColumn Binding="{Binding English}" Width="100" Header="English"/>
</DataGrid.Columns>
</DataGrid>
<Button Content="Nacitaj" Height="23" HorizontalAlig­nment="Center" Margin="0,260,0,0" Name="BTnacitaj" VerticalAlignmen­t="Center" Width="75" Click="BTnaci­tajOnClick"/>
</Grid>
</Window>

Riešenie je správne? Alebo sa to dá aj jednoduchšie?

Vopred ďakujem za odpoveď.

 
Odpovědět
4.1.2014 21:46
Avatar
Jirka D
Člen
Avatar
Jirka D:28.2.2014 11:14

zdravim. sdraco - díky za super tutorialy. s databázemi začínám.Měl bych dotaz podobný jako misaz. Jde mi o to jak dotazovat. dataGridViewSlo­vicka.DataSou­rce = kontext.Words; mi vyplivne celou tabulku. Pokud bych chtěl např: English LIKE %o%

zkoušel jsem :
kontext.Execu­teCommand("SE­LECT * FROM Word WHERE English LIKE %o%");
nebo
kontext.Execu­teQuery<Word>("SE­LECT * FROM Word WHERE English LIKE %o%");

oboje asi probehlo ale jak to dostat zase do dataGridViewSlo­vicka ???
když dám dataGridViewSlo­vicka.DataSou­rce = kontext.Words; mám opět celou tabulku.

hledal jsem i SqlCeCommand jak píše pako ale bez výsledku.

díky za info

 
Odpovědět
28.2.2014 11:14
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 10 zpráv z 35.