Ich habe zu dieser komplizierten SQL-Abfrage gegangen, während Sie versuchen, Anwendung für vorhandene Datenbank zu machen, und es an DataGrid überträgt.Komplizierte SQL-Abfrage Datenbindung an DataGrid
private void buttonlaunch_Click(object sender, EventArgs e)
{
dataAkt.DataContext = GetComments("SELECT a1.*, inspectors.cFullName, organizations.cOrgName, d1.cString, d2.cString, d3.cString, towns.cTownName " +
"FROM akt as a1 "+
"left join inspectors on a1.nDocInspektor = inspectors.ROWID "+
"left join organizations on organizations.nDirectoryType = organizations.ROWID "+
"left join directories as d1 on a1.nOrgFormVlast = d1.ROWID "+
"left join directories as d2 on a1.nOrgVidPidpr = d2.ROWID "+
"left join directories as d3 on a1.nOrgVidEPDial = d3.ROWID "+
"left join towns on a1.nDocMisceSkladannya=towns.ROWID").DefaultView;
}
in XAML
<DataGrid x:Name="dataAkt" ItemsSource="{Binding}" AutoGenerateColumns="False" HorizontalAlignment="Left" VerticalAlignment="Top" SelectionChanged="dataAkt_SelectionChanged" Margin="10,10,0,0">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Path=cName}" Header="Название/комментарий" Width="100" IsReadOnly="True" Visibility="Collapsed" />
<DataGridTextColumn Binding="{Binding Path=ROWID}" Header="Номер" Width="100" IsReadOnly="True" />
<DataGridTextColumn Binding="{Binding Path=cDocNomer}" Header="Номер документа" Width="100" IsReadOnly="True" />
<DataGridTextColumn Binding="{Binding Path=dDocDate, StringFormat=\{0:dd.MM.yyyy\}}" Header="Дата составления" Width="100" IsReadOnly="True" />
<DataGridTextColumn Binding="{Binding Path=cOrgName}" Header="Субъект хозяйствования" Width="100" IsReadOnly="True" />
<DataGridTextColumn Binding="{Binding Path=cFullName}" Header="Персонал ГОСТРУД" Width="100" IsReadOnly="True" />
<DataGridTextColumn Binding="{Binding Path=cDocUch1}" Header="При участии" Width="100" IsReadOnly="True"/>
<DataGridTextColumn Binding="{Binding Path=organizations.cOrgName}" Header="Тип организации" Width="100" IsReadOnly="True" />
<DataGridTextColumn Binding="{Binding Path=d1.cString}" Header="Форма собственности" Width="100" IsReadOnly="True" />
<DataGridTextColumn Binding="{Binding Path=d2.cString}" Header="Вид предпринимательства" Width="100" IsReadOnly="True" />
<DataGridTextColumn Binding="{Binding Path=d3.cString}" Header="Вид экономической деятельности" Width="100" IsReadOnly="True" />
<DataGridTextColumn Binding="{Binding Path=towns.cTownName}" Header="Место составления" Width="100" IsReadOnly="True" />
<DataGridTextColumn Binding="{Binding Path=cOrgAdresa}" Header="Адрес организации" Width="100" IsReadOnly="True" />
<DataGridTextColumn Binding="{Binding Path=cOrgPhoneFax}" Header="Телефон/Факс" Width="100" IsReadOnly="True" />
<DataGridTextColumn Binding="{Binding Path=cPosPIB}" Header="Фамилия, имя, отчество" Width="100" IsReadOnly="True" />
<DataGridTextColumn Binding="{Binding Path=cPosPosada}" Header="Должность" Width="100" IsReadOnly="True"/>
<DataGridTextColumn Binding="{Binding Path=fPerZaborg}" Header="Задолженность, тыс. руб" Width="100" IsReadOnly="True" />
<DataGridTextColumn Binding="{Binding Path=fPerZaborgZv}" Header="Зад. уволенным, тыс. руб" Width="100" IsReadOnly="True" />
<DataGridTextColumn Binding="{Binding Path=MyBoolValue, Converter={StaticResource BooleanToStringConverter}}" Header="Проверка в ночное время" Width="100" IsReadOnly="True" />
<DataGridTextColumn Binding="{Binding Path=nPerPropoz}" Header="Внесено предложений" Width="100" IsReadOnly="True" />
<DataGridTextColumn Binding="{Binding Path=cOrgIndKod}" Header="Идентификационный номер" Width="100" IsReadOnly="True" />
<DataGridTextColumn Binding="{Binding Path=cOrgFormVlastKod}" Header="Код формы собственности" Width="100" IsReadOnly="True" />
<DataGridTextColumn Binding="{Binding Path=cOrgVidEPDialKod}" Header="Код вида экономической деятельности" Width="100" IsReadOnly="True" />
</DataGrid.Columns>
MySQL Workbench gibt mir resultierende Tabelle mit allen Spalten, die ich brauche, aber in dataAkt
colunms organizations.cOrgName
d1.cString
d2.cString
d3.cString
coluns sind emply. Kann nicht warum lösen.
Vielen Dank, ich bin neu in diesem und wusste nichts über Aliase in SQL, diese Abfrage ist die komplizierteste Abfrage, die ich je gemacht habe. Arbeitete nett und glatt –