[C#] Benutzung des Backgroundworker-Objektes

using System.Threading;

BackgroundWorker bw = new BackgroundWorker();

private void btnStartWorker_Click(object sender, EventArgs e)
{
    if (!bw.IsBusy)
    {
        bw.WorkerReportsProgress = true;
        bw.WorkerSupportsCancellation = true;
        bw.DoWork += new DoWorkEventHandler(worker_DoWork);
        bw.ProgressChanged += new ProgressChangedEventHandler(worker_ProgressChanged);
        bw.RunWorkerCompleted += new RunWorkerCompletedEventHandler(worker_RunWorkerCompleted);
        bw.RunWorkerAsync();

        btnStartWorker.Text = "Abbruch";
        this.Cursor = Cursors.Wait;
    }
    else
    {
        bw.CancelAsync();
    }
}

private void worker_DoWork(object sender, DoWorkEventArgs e)
{
    for (int i = 0; i < 10000; i++)
    {
        if (bw.CancellationPending)
        {
            e.Cancel = true;
            return;
        }

        // irgendwas rechnen
        int iPc = (int)(((double)i / 10000.0) * 100);

        // Fortschrittswert melden
        bw.ReportProgress(iPc);

        // BackgroundWorker schlafen schicken
        Thread.Sleep(100);
    }
}

private void worker_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
	this.BeginInvoke((MethodInvoker)delegate
	{
		pbProgressBar.Value = e.ProgressPercentage;
	});
}

private void worker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
    // hier Dinge erledigen, die auftreten, wenn Backgroundworker fertig ist
    this.Cursor = Cursors.Arrow;
    
    if (e.Cancelled)
    {
        btnStartWorker.Text = "Start";
    }
    
    if (e.Error != null)
    {
        MessageBox.Show(e.Error.Message);
    }
}

[C#][ODBC] Daten aus einer Tabelle in einem DataGridView anzeigen

// dgvGrid == DataGridView auf dem Formular
private void btnOpen_Click(object sender, EventArgs e)
{
    OdbcConnection conn = null;
    OdbcDataReader reader = null;

    try
    {
        // Verbindung herstellen
        conn = new OdbcConnection(@"dsn=MyDSN;UID=user;PWD=password;");
        conn.Open();

        // SQL-Kommando abschicken
        OdbcCommand cmd = new OdbcCommand("SELECT Names FROM MyTable", conn);
        // Daten einlesen
        reader = cmd.ExecuteReader();

        // Bindingsource erstellen
        BindingSource bSource = new BindingSource();
        // Reader an Source binden
        bSource.DataSource = reader;

        // Source an DataGridView übergeben
        dgvData.DataSource = bSource;
    }
    catch (Exception)
    {
    }
    finally
    {
        // aufräumen
        if (reader != null) reader.Close();
        if (conn != null) conn.Close();
    }
}
  • Weiterführender Link: Link

[ODBC] Zugriff auf SQL Server

using System.Data;
using System.Data.Odbc;

// Username
string sUID = @"user";
// Passwort
string sPW = @"password";
// Server
string sServer = @"127.0.0.1";
// Database
string sDB = @"DatabaseName";
// SQL-String
string sSql = @"SELECT Names FROM MyTable";

OdbcConnection conn = null;
OdbcDataReader reader = null;

try
{
    // Verbindung herstellen
    conn = new OdbcConnection("Driver={SQL Server};Server=" + sServer + ";UID=" + sUID + ";PWD=" + sPW + ";Database=" + sDB + ";");
    conn.Open();

    // SQL-Kommando abschicken
    OdbcCommand cmd = new OdbcCommand(sSql, conn);
    reader = cmd.ExecuteReader();

    // Daten auslesen und anzeigen
    while (reader.Read())
    {
        Console.WriteLine(reader["Names"]);
    }
}
catch (Exception ex)
{
    Console.WriteLine("Error: " + ex);
}
finally
{
    // aufräumen
    if (reader != null) reader.Close();
    if (conn != null) conn.Close();
}

[ODBC] Zugriff auf Oracle

using System.Data;
using System.Data.Odbc;

// Username
string sUID = @"user";
// Passwort
string sPW = @"password";
// Server
string sServer = @"127.0.0.1";
// SQL-String
string sSql = @"SELECT Names FROM MyTable";

OdbcConnection conn = null;
OdbcDataReader reader = null;

try
{
    // Verbindung herstellen
    conn = new OdbcConnection("Driver={Microsoft ODBC for Oracle};Server=" + sServer + ";UID=" + sUID + ";PWD=" + sPW + ";");
    conn.Open();

    // SQL-Kommando abschicken
    OdbcCommand cmd = new OdbcCommand(sSql, conn);
    reader = cmd.ExecuteReader();

    // Daten auslesen und anzeigen
    while (reader.Read())
    {
        Console.WriteLine(reader["Names"]);
    }
}
catch (Exception ex)
{
    Console.WriteLine("Error: " + ex);
}
finally
{
    // aufräumen
    if (reader != null) reader.Close();
    if (conn != null) conn.Close();
}

[ODBC] Zugriff auf JET (Access)

using System.Data;
using System.Data.Odbc;

// Username
string sUID = @"user";
// Passwort
string sPW = @"password";
// Access-Datei
string sMDB = @"C:\Temp\Northwind.mdb";
// SQL-String
string sSql = @"SELECT Names FROM MyTable";

OdbcConnection conn = null;
OdbcDataReader reader = null;

try
{
    // Verbindung herstellen
    conn = new OdbcConnection("Driver={Microsoft Access Driver (*.mdb)};DBQ=" + sMDB + ";UID=" + sUID + ";PWD=" + sPW + ";");
    conn.Open();

    // SQL-Kommando abschicken
    OdbcCommand cmd = new OdbcCommand(sSql, conn);
    reader = cmd.ExecuteReader();

    // Daten auslesen und anzeigen
    while (reader.Read())
    {
        Console.WriteLine(reader["Names"]);
    }
}
catch (Exception ex)
{
    Console.WriteLine("Error: " + ex);
}
finally
{
    // aufräumen
    if (reader != null) reader.Close();
    if (conn != null) conn.Close();
}

Schließen-Kreuz einer Form deaktivieren

/// <summary->
/// zum deaktivieren des Schließen-Kreuzes CreateParams-Methode der Form überschreiben
/// folgender Code muss in den Code des Formulars kopiert werden
/// </summary->
protected override CreateParams CreateParams
{
    get
    {
        const int CS_NOCLOSE = 0x200;

        CreateParams createParams = base.CreateParams;
        createParams.ClassStyle = createParams.ClassStyle | CS_NOCLOSE;

        return createParams;
    }
}

Onboard Speakersound (Beep) abspielen

// Aufrufbeispiel
// SpeakerBeep.PlayBeep(1000, 1000);

using System.Runtime.InteropServices;

/// <summary->
/// freeware helper class for creating a onboard system speaker beep
/// (W) 2011 by admin of codezentrale.6x.to
/// </summary->
public static class SpeakerBeep
{
    /// <summary->
    /// http://pinvoke.net/default.aspx/kernel32.Beep
    /// </summary->
    [DllImport(&quot;kernel32.dll&quot;, SetLastError = true)]
    [return: MarshalAs(UnmanagedType.Bool)]
    static extern bool Beep(uint dwFreq, uint dwDuration);
    /// <summary->
    /// Plays a beepsound on onboard speaker
    /// </summary->
    /// <param name=&quot;freq&quot;->desired frequency [Hz]</param->
    /// <param name=&quot;duration&quot;->desired duration [ms]</param->
    /// <returns->true, if successfull, otherwise false</returns->
    public static bool PlayBeep(uint freq, uint duration)
    {
        return Beep(freq, duration);
    }
}