Jak připojit k databázi a spustit příkaz pomocí ADO.NET 2005 a Visual C# 2005 nebo pomocí ADO.NET a Visual C# .NET

Microsoft Visual Basic .NET verzi tohoto článku naleznete v tématu
301075 .
Microsoft Visual J# .NET verzi tohoto článku naleznete v tématu
322045 .

Tento článek se týká následujících oborů názvů knihovny tříd rozhraní.NET Framework společnosti Microsoft:
  • System.Data
  • System.Data.SqlClient

Souhrn

Tento podrobný článek popisuje připojení k databázi a příkaz spustit pomocí ADO.NET 2005 nebo ADO.NET.

Požadavky

Následující seznam obsahuje doporučený hardware, software, síťovou infrastrukturu a aktualizace service Pack, které potřebujete:
  • Microsoft Windows Server 2003, Microsoft Windows 2000 Professional, Windows 2000 Server, Windows 2000 Advanced Server nebo Microsoft Windows NT 4.0 Server
  • Microsoft Visual Studio 2005 nebo Microsoft Visual Studio .NET
Tento článek předpokládá, že jste obeznámeni s následující témata:
  • Databázové terminologii
  • Structured Query Language (SQL)

Jak spustit příkaz

Příkazy jsou vydávány databázích akcím proti úložišť dat a zahrnout libovolný příkaz vydaný proti databázi. Můžete použít OleDbCommand nebo třídy SqlCommand získat příkazu úložiště dat a mohou být specifické pro úložiště dat OleDbCommand . Tento článek ukazuje, jak třída SqlClient (pro připojení k počítači se systémem Microsoft SQL Server) a třída OleDb (pro libovolné databáze OLE DB nebo ODBC ovladač k dispozici) v rámci ADO.NET. Kód je však obvykle shodné pro obě.

S objekty ADO můžete vydat příkazy prostřednictvím příkazu, připojenínebo objektu Recordset . V ADO.NET příkazy spustit pouze příkaz objekty (SqlCommand nebo OleDbCommand).

Chcete-li spustit příkaz, postupujte takto:
  1. Postupujte podle následujících kroků k vytvoření nové aplikace konzoly v aplikaci Microsoft Visual C# 2005 nebo Microsoft Visual C# .NET:
    1. Spusťte Microsoft Visual Studio 2005 nebo Microsoft Visual Studio .NET.
    2. V nabídce soubor přejděte na příkaz Nový a klepněte na příkaz projekt.
    3. V dialogovém okně Nový projekt klepněte v části Typy projektuklepněte na Projekty Visual C# a potom klepněte na tlačítko Aplikace konzoly v části šablony.

      Poznámka: V aplikaci Visual Studio 2005 klepněte Visual C# pod Typy projektů v dialogovém okně Nový projekt a potom klepněte na tlačítko Aplikace konzoly v části šablony.
  2. Ujistěte se, že váš projekt obsahuje odkaz na obor názvů System.Data a přidat odkaz, pokud ji neobsahuje.
  3. Použijte příkaz using na systém a System.Data obory názvů, takže není nutné kvalifikovat deklarace ve obory názvů později v kódu. Můžete také zahrnout System.Data.SqlClient nebo System.Data.OleDb, podle toho, který používáte.
    using System;using System.Data;
    using System.Data.SqlClient;

  4. Dříve než můžete vytvořit připojení k databázi, musíte mít připojovací řetězec. Připojovací řetězce obsahovat všechny informace, které potřebujete k vytvoření připojení k databázi, včetně názvu serveru, název databáze, ID uživatele a heslo. Například následující řetězec připojení odkazuje na místní počítač, který je spuštěn SQL Server:

    Pro připojení OleDb:

    Poznámka: ID uživatele < číslo > UID musí mít příslušná oprávnění k provádění těchto operací v databázi.
    Provider=SQLOLEDB.1;User ID=<UID>;Initial Catalog=pubs;Data Source=(local)
    Pro připojení SqlClient:
    User ID=<UID>;Initial Catalog=pubs;Data Source=(local)
    Poznámka: Pokud potřebujete další pomoc určení připojovací řetězec databáze, hledání "ConnectionString" v knihovně Microsoft Developer Network (MSDN) na:
  5. Visual Studio vytvoří statické třídy a prázdné procedury Main() . Řetězcové proměnné deklarovat a příslušné připojovací řetězec databáze uložit v tomto postupu.

    Poznámka: ID uživatele < číslo > UID musí mít příslušná oprávnění k provádění těchto operací v databázi.
    class Class1{
    static void Main(string[] args)
    {
    string sConnectionString =
    "User ID=<UID>;Initial Catalog=pubs;Data Source=(local)";
    }
    }

  6. Pomocí tohoto připojovacího řetězce, vytvořte nový objekt OleDbConnection nebo SqlConnection a volat jeho metody Open navázat připojení k databázi:
    SqlConnection objConn = new SqlConnection(sConnectionString);objConn.Open();

  7. Vytvoření objektu SqlCommand nebo OleDbCommand a předat v příkazu, který chcete spustit a objekt připojení, který jste vytvořili v předchozím kroku. Následující ukázkový kód předává v příkazu INSERT:
    string sSQL = "INSERT INTO Employee " +   "(emp_id, fname, minit, lname, job_id, job_lvl, pub_id, hire_date) " + 
    "VALUES ('MSD12923F', 'Duncan', 'W', 'Mackenzie', 10, 82,'0877','2001-01-01')";
    SqlCommand objCmd = new SqlCommand(sSQL,objConn);

  8. Po vytvoření objektu SqlCommand nebo OleDbCommand , může volat metodu ExecuteNonQuery spustit příkaz, který jej představuje. ExecuteNonQuery je určen pro příkazy, které nevrací žádné výsledky (například příkazy DELETE, UPDATE a INSERT). Pokud spuštění příkazu bez vyvolání výjimky (viz následující kód), v databázi byl příkaz úspěšně proveden.
    objCmd.ExecuteNonQuery();
  9. Uložte projekt. V nabídce Debug klepněte na tlačítko Start ke spuštění příkazu proti databázi.

Použití parametrů

Když spustíte příkazy proti databázi (například aktualizace, vkládání a odstranění příkazy nebo volání uložené procedury), tyto příkazy jsou často parametrické. To umožňuje příkaz, který má být vytvořen jednou, ale spustit vícekrát s různými hodnotami, které jsou vloženy namísto parametrů. Zvažte odpovídající příkaz DELETE na příkaz INSERT, který se používá v předchozí části:
string sSQL = "DELETE FROM Employee WHERE emp_id = @emp_id"
Název parametru ("@emp_id") v tomto příkazu DELETE představuje parametr, než můžete nahradit různé hodnoty při každém spuštění příkazu.

Chcete-li používat parametry příkazu, postupujte takto:
  1. Vytvořte objekt OleDbConnection nebo SqlConnection , stejně jako v části "jak spustit příkaz".
  2. Nahraďte hodnoty zástupné znaky (například "@emp_id" nebo "@fname") tak, aby text příkaz používá parametry. Zobrazit příkaz DELETE před takto příklad.
  3. Vytvořte objekt OleDbCommand nebo SqlCommand a předat objekt připojení, který jste vytvořili v prvním krokem a text příkazu, který obsahuje zástupné symboly parametrů.
  4. Pro každý parametr přidáte parametr objektu kolekce parametrů objektu command. Pro každý parametr je nutné zadat název a datový typ.
    objCmd.Parameters.Add("@emp_id", SqlDbType.Char, 9);
  5. Uložené procedury mohou mít parametry, které jsou vrácené hodnoty a výstupní parametry. Je také nutné nastavit hodnotu pro každý vstupní parametr před spuštěním dotazu:
    objCmd.Parameters["@emp_id"].Value = "MSD12923F";
  6. Spusťte následující dotaz:
    try {
    objCmd.ExecuteNonQuery();
    }
    catch (System.Exception e)
    {
    Console.WriteLine(e.Message);
    }
    Console.WriteLine("Record Deleted");

Úplný výpis kódu

Poznámka: Je nutné změnit ID uživatele < číslo > UID = na správné hodnoty před spuštěním tohoto kódu. Ujistěte se, že < číslo > UID má příslušná oprávnění k provedení této operace na databázi.
using System;using System.Data;
using System.Data.SqlClient;

/// <summary>
/// Summary description for Class1.
/// </summary>
class Class1
{
static void Main(string[] args)
{
AddRecord();
RemoveRecord();
Pause();
}

static void Pause()
{
Console.WriteLine("Press Enter To Continue....");
Console.ReadLine();
}

static void AddRecord()
{
string sConnectionString = "User ID=<UID>;Initial Catalog=pubs;Data Source=(local)";
SqlConnection objConn = new SqlConnection(sConnectionString);
objConn.Open();
string sSQL = "INSERT INTO Employee " +
"(emp_id, fname, minit, lname, job_id, job_lvl, pub_id, hire_date) " +
"VALUES ('MSD12923F', 'Duncan', 'W', 'Mackenzie', 10, 82,'0877','2001-01-01')";
SqlCommand objCmd = new SqlCommand(sSQL,objConn);
try
{
objCmd.ExecuteNonQuery();
}
catch (System.Exception e)
{
Console.WriteLine(e.Message);
}
Console.WriteLine("Record Added");
}

static void RemoveRecord()
{
string sConnectionString = "User ID=<UID>;Initial Catalog=pubs;Data Source=(local)";
SqlConnection objConn = new SqlConnection(sConnectionString);
objConn.Open();
string sSQL = "DELETE FROM Employee WHERE emp_id = @emp_id";
SqlCommand objCmd = new SqlCommand(sSQL,objConn);
objCmd.Parameters.Add("@emp_id", SqlDbType.Char, 9);
objCmd.Parameters["@emp_id"].Value = "MSD12923F";
try
{
objCmd.ExecuteNonQuery();
}
catch (System.Exception e)
{
Console.WriteLine(e.Message);
}
Console.WriteLine("Record Deleted");
}
}

Odkazy

Další informace o použití ADO.NET příkazy databáze a uložené procedury, naleznete na následujících webech společnosti Microsoft:
SQL Server 2000 uložené procedury
http://msdn2.microsoft.com/en-us/library/aa214299(SQL.80).aspx

"Potápěním do přístupu k datům" sloupec Hlasy MSDN
http://msdn2.microsoft.com/en-us/library/ms810295.aspx

Technologie ADO.NET pro rozhraní ADO Programmer
http://msdn2.microsoft.com/en-us/library/ms973217.aspx

MSDN Online .NET Developer Center.
http://msdn.microsoft.com/net
Další informace naleznete v následující knize:
Ostré, Jan a Jan Jagger. Microsoft Visual C# .NET krok za krokem. Nakladatelství Microsoft Press, 2003.
Další informace naleznete v následujících Microsoft Training & Certification a kurzu:
Vlastnosti

ID článku: 306636 - Poslední kontrola: 20. 1. 2017 - Revize: 1

Váš názor