Mam problem, mianowicie stworzyłem prostą aplikację do dodawania osób i przy próbie dodania wyskakuje mi błąd.
System.NullReferenceException: „Odwołanie do obiektu nie zostało ustawione na wystąpienie obiektu.”
Czy ktoś może mi powiedzieć co robię źle?
Poniżej zamieszczam kod:
using System;
using System.Data;
using System.Data.SQLite;
using System.IO;
using System.Windows.Forms;
namespace WindowsFormsApp3
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
public static SQLiteConnection polaczenie = new SQLiteConnection(string.Format("Data source={0}", Path.Combine(Application.StartupPath, "kurs685.db")));
private static SQLiteCommand komenda;
public static string zapytanieSQL = ("");
public static SQLiteCommand Komenda { get => komenda; set => komenda = value; }
private void polacz_Click(object sender, EventArgs e)
{
polaczenie.Open();
if (polaczenie.State == ConnectionState.Open)
MessageBox.Show("Połączono z bazą danych.", "Informacja", MessageBoxButtons.OK, MessageBoxIcon.Information);
else
MessageBox.Show("Połączenie z bazą danych nie udane.", "Informacja", MessageBoxButtons.OK, MessageBoxIcon.Information);
polaczenie.Close();
}
private void tabela_Click(object sender, EventArgs e)
{
polaczenie.Open();
if (polaczenie.State == ConnectionState.Open)
{
zapytanieSQL = string.Format("create table if not exists cudzoziemcy(Id intreger primary key , Imie varchar(30), DataUrodzenia varchar(20))");
Komenda = new SQLiteCommand(zapytanieSQL, polaczenie);
Komenda.ExecuteNonQuery();
MessageBox.Show("Utworzono tabelę.", "Informacja", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
polaczenie.Close();
}
private void dodaj_Click(object sender, EventArgs e)
{
DodajOsobe("", "");
}
public static void DodajOsobe(string imie, string urodzenia)
{
Komenda.CommandText = zapytanieSQL;
zapytanieSQL = string.Format("insert into cudzoziemcy(Imie, DataUrodzenia)" +
"values('" + imie + "','" + urodzenia);
SQLiteDataAdapter adapter = new SQLiteDataAdapter(Komenda);
Komenda.ExecuteNonQuery();
}
public class Obcy
{
public string Imie { get; set; }
public string DataUrodzenia { get; set; }
public Obcy() { }
public Obcy(string imie, string urodzenia)
{
this.Imie = imie;
this.DataUrodzenia = urodzenia;
}
}
}
}