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.
W oknie JPK/API dodajemy nowy projekt. Środowisko projektowania otwieramy przyciskiem [Projektuj].
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)
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.
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.