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

Překlady článku Překlady článku
ID článku: 306636 - Produkty, které se vztahují k tomuto článku.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Souhrn

Tento článek ukazuje, jak pomocí ADO.NET 2005 nebo ADO.NET připojení k databázi a chcete-li spustit příkaz.

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 je obeznámen s následující témata vám:
  • Databázové terminologii
  • Jazyk SQL (SQL)

Jak spustit příkaz

Příkazy jsou vydávány databázích akcím proti úložišť dat a zahrnout všechny prohlášení, které mohou být vystaveny porovnána s databází. Můžete OleDbCommand nebo třídy SqlCommand úložišti dat získat příkazu a může být specifické pro úložiště dat OleDbCommand. Tento článek ukazuje SqlClient třídu (připojit k počítači se systémem Microsoft SQL Server) i třída OleDb (pro všechny databáze OLE DB nebo ODBC ovladač k dispozici) v rámci ADO.NET. Kód je však obvykle stejná pro obě.

ADO vydávat příkazy pomocí příkazů, připojení nebo objektu Recordset. Příkazy v ADO.NET, spouštět pouze příkaz objekty (SqlCommand nebo OleDbCommand).

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

      Poznámka: V aplikaci Visual Studio 2005 Visual C# v části Typy projektů v dialogovém okně Nový projekt, klepnutí na příkaz Aplikace konzoly v části šablony.
  2. Zkontrolujte, zda projekt obsahuje odkaz na obor názvů System.data a přidejte odkaz, pokud ji neobsahuje.
  3. Použít pomocí příkazu na systém a System.data obory názvů tak, aby nemáte nárok prohlášení v těchto oborech názvů později ve vašem kódu. Můžete také zahrnout System.data.SqlClient nebo System.data.OLEDB, podle toho, který typ 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é je třeba vytvořit připojení k databázi, včetně názvu serveru, název databáze, ID uživatele a heslo. Například následující spojovací řetězec body v místním počítači, ve kterém běží SQL Server:

    Pro připojení OleDb:

    Poznámka:ID uživatele <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)
    						
    Připojení pro SqlClient:
    User ID=<UID>;Initial Catalog=pubs;Data Source=(local)
    						
    řetězec Poznámka: Pokud potřebujete další pomoc při určování připojení k databázi, search for "ConnectionString" v knihovně Microsoft Developer Network (MSDN):
    http://msdn.microsoft.com/en-us/default.aspx
  5. Visual Studio vytváří statické třídy a prázdné procedury Main(). Řetězcové proměnné deklarovat a uložte příslušné připojovací řetězec databáze v tomto postupu.

    Poznámka:ID uživatele <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 voláním jeho Otevřít metody 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, kterou může volat metodu ExecuteNonQuery ke spuštění příkazu, který ho představuje. ExecuteNonQuery je určen pro příkazy, které nevrátí žádné výsledky (například příkazy INSERT, DELETE a UPDATE). Pokud se spustí příkaz bez vyvolání výjimku (viz následující kód), příkaz byl vykonán úspěšně v databázi.
    objCmd.ExecuteNonQuery();
    					
  9. Uložte projekt. V nabídce Debug klepněte na příkaz Start příkaz v databázi.

Použití parametrů

Při spuštění příkazů porovnána s databází (například UPDATE, INSERT a DELETE příkazy nebo volání uložené procedury), tyto příkazy jsou často parametry. To umožňuje příkaz, který má být vytvořen jednou, ale s různými hodnotami, které jsou vloženy namísto parametrů spuštěn vícekrát. 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ž je možné nahradit různé hodnoty při každém spuštění příkazu.

Chcete-li používat parametry do příkazu, postupujte takto:
  1. Vytvořit objekt OleDbConnection nebo SqlConnection, kterou jste provedli v části „ How to run a command.
  2. Nahradí hodnoty se zástupnými symboly (například "@ emp_id" nebo "@ fname"), takže text příkaz používá parametry. Zobrazit příkaz DELETE před takto příklad.
  3. Vytvořte objekt OleDbCommand nebo SqlCommand a předejte objekt připojení, který jste vytvořili v prvním krokem a text příkaz, který obsahuje vyhrazená místa pro parametr.
  4. Pro každý parametr přidat do kolekce parametrů objekt příkazu parametr objektu. Pro každý parametr, je třeba zadat název a datový typ.
    objCmd.Parameters.Add("@emp_id", SqlDbType.Char, 9);
    					
  5. Uložené procedury mohou mít parametry, které vracejí 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. Dotaz spustíte takto:
    try 
    {
    	objCmd.ExecuteNonQuery();
    }
    catch (System.Exception e) 
    {
    	Console.WriteLine(e.Message);
    }
    Console.WriteLine("Record Deleted");
    					

Dokončení výpis kódu

Poznámka:Je nutné změnit ID uživatele před spuštěním tohoto kódu = <uid>na správné hodnoty. Zkontrolujte, zda <uid>má příslušná oprávnění k provedení této operace v 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

Na Další informace o použití ADO.NET příkazy databáze a uložených procedur, 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 Data Access" sloupec Hlasů MSDN
http://msdn2.microsoft.com/en-us/library/ms810295.aspx

ADO.NET pro programátora ADO
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 Jana Jagger. Microsoft Visual C# .NET Step by Step. Microsoft Press, 2003.
Další informace naleznete v tématu následující kurz školení a certifikace společnosti Microsoft:
Programování 2389 s ADO.NET
http://www.microsoft.com/learning/syllabi/en-us/2389Bfinal.mspx

Vlastnosti

ID článku: 306636 - Poslední aktualizace: 17. srpna 2007 - Revize: 4.9
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft Visual C# 2005
Klíčová slova: 
kbmt kbhowtomaster kbsqlclient kbsystemdata KB306636 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:306636

Dejte nám zpětnou vazbu

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com