Aktualna wersja: 17.05.22


Odczyt danych z bazy MS SQL SERVER EXPRESS

Dokument opisuje sposób pobrania danych z bazy MS SQL za pomocą własnego zapytania SQL.

W przykładzie dane wynikowe (lista faktur) zostaną zaprezentowane w oknie DataGridView, co może być użyteczne do testowania zapytania SQL. Jeżeli zwracane dane będą prawidłowe, możemy w dalszej części przejść do generowania pliku JPK. W tym przykładzie ograniczamy się tylko do załadowania danych.



Generator JPK API z bazy Ms SQL Server

W oknie JPK/API dodajemy nowy projekt. Środowisko projektowania otwieramy przyciskiem [Projektuj].



Generator JPK API z bazy Ms SQL Server

Z listy komponentów (dostępnej z lewej strony) dodajemy:

  • PanelControl (nagłówek formy)
  • SimpleButton (przycisk do załadowania danych)
  • TextBox (do podania numeru miesiąca)
  • DataGridView (tabela do zaprezentowania wykazu faktur)


Generator JPK API z bazy Ms SQL Server

Kod źródłowy C# do pobrania i zaprezentowania danych.

Do obsługi bazy MS SQL służy klasa: TGSoft.DB.MsSql(@"localhost\SQLEXPRESS", "tgsoft1", "", "");

Parametry konstruktora:

  • Nazwa serwera i instancji SQL („Server\Instancja”)
  • Nazwa bazy danych
  • Login użytkownika z dostępem do serwera
  • Hasło użytkownika z dostępem do serwera

Login i hasło potrzebne są dla autoryzacji „SQL”, natomiast dla autoryzacji „Windows”, pola zostawiamy puste.

Za pomocą metody GetSQLTable() klasy MsSql, pobieramy listę rekordów do klasy System.Data.DataTable.



Generator JPK API z bazy Ms SQL Server

W przykładzie listę rekordów prezentujemy za pomocą widoku DataGridView (dataGridView1.DataSource = dt;)


Do wygenerowania JPK wystarczy odczytać w pętli listę rekordów DataRow z klasy DataTable:


    foreach (DataRow row in dt.Rows)
    {
    }
        

Poniżej cały kod C# naszego przykładu:

namespace Szark
{
    using System;
    using System.Drawing;
    using System.Windows.Forms;

    public partial class Form1 : DevExpress.XtraEditors.XtraForm
    {
        private TGSoft.DB.MsSql ms;
        private System.Data.DataTable dt;
        
        public Form1(object sender)
        {
            this.InitializeComponent();
            ms = new TGSoft.DB.MsSql(@"localhost\SQLEXPRESS", "tgsoft1", "", "");
            simpleButton1.Click += simpleButton1_click;
        }

        public void Main()
        {
            this.ShowDialog();
        }
        
        private void simpleButton1_click(object sender, EventArgs e)
        {
            dt = ms.GetSQLTable(string.Format(sql, textBox1.Text));
            dataGridView1.DataSource = dt;
        }
        
        const string sql = @"
            SELECT data, nrfaktury, netto, vat, brutto
            FROM gm_faktury
            WHERE YEAR(data)=2016 AND MONTH(data)={0}";
    }
}
        



Zapoznaj się z następnym dokumentem Generowanie JPK z podanego okresu czasu.