Witam wszystkich forumowiczów.
Moja aplikacja ma za zadanie usuwać pliki z dysku ze wskazanego przez użytkownika katalogu.
Program napisany jest w Visual C# i łączy się z baządanych na serwerze SQL Server 2005. Aplikacja po podaniuniu przez użytkownika ścieżki do folderu z plikami zbiera informacje o plikach (Nazwa, lokalizacja, Rozszerzenie, Data modyfikacji). Jeśli data modyfikacji plików jest różna od daty dzisiejszej to dane o tych plikach wysyłane są do tabeli Pliki. Program następnie powinien czytać nazwy plików do usunięcia z tabeli Pliki i usuwać je z dysku. Właśnie tu mam problem jak zczytać dane z bazy z powrotem do aplikacji. W tabeli Histria_sesji do każdego usuwanego pliku umieszczać powinien flagę. Zależnie czy plik został już ususnięty czy nie. Ostatnim krokiem jest usunięcie rekordów dotyczących plików już usuniętych z dysku w bazie (czyli te pliki, które mają flagę ustawioną na wartość true w rekordzie Usuniety).
poniżej kod programu.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Data.SqlClient;

namespace Usuwacz
{
    public partial class Form1 : Form
    {
        public string connectionString;
        public SqlConnection polaczenie;
        public SqlCommand komenda;

        public Form1()
        {
            InitializeComponent();


            //connectionString = "server = SQL2K5\\PROJEKT_BAZ; uid = WSKIZ_EDU\\16104; database = Usuwacz; Integrated Security = True"; //serwer na uczelni
            connectionString = "server = PPP-4X3UTSO8HER\\SQLEXPRESS; uid = Destro; database = Usuwacz; Integrated Security = True"; //mój serwer

        polaczenie = new SqlConnection(connectionString);//obiekt połączenie z konstruktorem
        polaczenie.Open();
        komenda = new SqlCommand();
        
        string commandString = "Select Nazwa_pliku, Lokalizacja, Rozszerzenie, Data_modyfikacji From Pliki";
        SqlDataAdapter DataAdapter = new SqlDataAdapter(commandString, connectionString);
        DataSet DataSet = new DataSet( );
        DataAdapter.Fill(DataSet, "Pliki");
        }
        /*private void timer1_Tick(object sender, EventArgs e)
            {
                data_dzis = DateTime.Now.ToLongTimeString();
            }*/

        
        private void usuwanieToolStripMenuItem_Click(object sender, EventArgs e)//sprawdz();
        {
            //pobierz info, następnie wyślij wynik do Bazy Danych(nazwa i data pliku)
            //usun_rozmyte() Delete
            
            string sciezka = textBox1.Text;
            if (sciezka != null) //sprawdzenie czy ścieżka została podana
            {
                string[] worek = new string[100]; // obiekt tymczasowo przechowuje wszystkie dane o plikach
                worek = Directory.GetFiles(sciezka);
                string data_modyf, data_dzis; // rozszerzenie
                string komendasql = "INSERT INTO Pliki (Nazwa_pliku, Lokalizacja, Data_modyfikacji) Values(@Nazwa_Pliku, @Lokalizacja, @Data_modyfikacji)";//z worka do bazy
                komenda.CommandText = komendasql;
                komenda.Connection = polaczenie;
                komenda.Parameters.Add("@Nazwa_Pliku", SqlDbType.NChar);
                komenda.Parameters.Add("@Lokalizacja", SqlDbType.NChar);
                komenda.Parameters.Add("@Data_modyfikacji", SqlDbType.DateTime); //komenda.Parameters.Add("@Rozszerzenie", SqlDbType.NChar);

                foreach (string plik in worek)
                {
                    data_modyf = File.GetLastWriteTime(sciezka).ToString("yyyy-M-dd");
                    data_dzis = DateTime.Now.ToShortDateString();
                    /*string nazwa_pliku, rozszerzenie;
                    rozszerzenie = nazwa_pliku.Remove(); //roz=nazwa_pliku - 4znaki 0d lewej; nazwa_pliku = plik - sciezka; nazwa_p = plik - rozszerzenie;
                    //int l_sciezka = nazwa_pliku.IndexOf(" ");
                    nazwa_pliku = nazwa_pliku.TrimEnd(new char [] { '.', '\\' });*/
                    if (data_modyf != data_dzis)
                    {
                        komenda.Parameters["@Nazwa_Pliku"].Value = plik;
                        komenda.Parameters["@Lokalizacja"].Value = sciezka;
                        komenda.Parameters["@Data_modyfikacji"].Value = data_modyf;
                        //komenda.Parameters["@Rozszerzenie"].Value = rozszerzenie;
                        //komenda.ExecuteNonQuery();
                    }
                    else
                    {
                        MessageBox.Show("Nie ma plików do usunięcia", "pasek tytułu", MessageBoxButtons.OK, MessageBoxIcon.Information); //" Nie ma plików do usunięcia"
                    }
                }
                string komendasql1 = "Select Nazwa_pliku From Pliki Order by Nazwa_pliku";
                komenda.CommandText = komendasql1;
                SqlDataReader czytaj_bd = komenda.ExecuteReader(CommandBehavior.CloseConnection);
                while (czytaj_bd.Read())
                {
                    string stary_plik = czytaj_bd.ToString(); // pierwsza zwrócona kolumna
                    File.Delete(stary_plik); // usuwanie stary_plik z dysku
                    string komendasql2 = "INSERT INTO Historia_sesji (Id_sesji, Skonczone, Trwające) Values (@Id_sesji, @Skonczone, @Trwajace)"; // "logowamie" czynność do Historia_sesji
                    komenda.CommandText = komendasql2;
                    int Nr_sesji = 0;
                    bool usuniety = false;
                    bool do_usuniecia = false;
                    if (stary_plik != null)
                    {
                        komenda.Parameters.Add("@Id_sesji", SqlDbType.NChar); //komenda.Parameters.["@Id_sesji"].Value = Nr_sesji;
                        komenda.Parameters.Add("@Skonczone", SqlDbType.Bit);
                        komenda.Parameters["@Id_Sesji"].Value = Nr_sesji;
                        usuniety = true;
                        komenda.Parameters["@Skonczone"].Value = usuniety;
                        //komenda.ExecuteNonQuery();
                    }
                    else
                    {
                        komenda.Parameters.Add("@Id_sesji", SqlDbType.NChar);
                        komenda.Parameters.Add("@Trwające", SqlDbType.Bit);
                        komenda.Parameters["@Id_Sesji"].Value = Nr_sesji;
                        do_usuniecia = true;
                        komenda.Parameters["@Trwające"].Value = do_usuniecia;
                        //komenda.ExecuteNonQuery();
                    }
                }
            
                
                
                {
                    //progressBar1.PreformStep(); //zwiększenie o jeden krok
                    if (progressBar1.Value == progressBar1.Maximum) //jeżeli dojdzie do końca skali to pojawi się komunikat
                        MessageBox.Show("Pliki usuniete.", "pasek tytułu", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
            else
            {
                MessageBox.Show("Podana scieżka nie istnieje.", "pasek tytułu", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
         }

        private void zakończToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Close(); //Koniec pracy programu
        }
    }
}

Zapytania SQL:

USE [Usuwacz]
GO

/****** Object:  Table [dbo].[Historia_sesji]    Script Date: 06/22/2009 20:52:19 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[Historia_sesji](
	[Id_sesji] [nchar](250) NOT NULL,
	[Skonczone] [bit] NULL,
	[Trwajace] [bit] NULL
) ON [PRIMARY]

GO
USE [Usuwacz]
GO

/****** Object:  Table [dbo].[Pliki]    Script Date: 06/22/2009 20:51:46 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[Pliki](
	[Nazwa_pliku] [nchar](250) NOT NULL,
	[Rozszerzenie] [nchar](40) NULL,
	[Lokalizacja] [nchar](200) NULL,
	[Data_modyfikacji] [datetime] NULL,
 CONSTRAINT [PK_Pliki] PRIMARY KEY CLUSTERED 
(
	[Nazwa_pliku] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

GO