Skapa parametriserade TableAdapter-frågor i .NET Framework-program

Anmärkning

Klassen DataSet och relaterade klasser är äldre .NET Framework-tekniker från början av 2000-talet som gör det möjligt för program att arbeta med data i minnet medan apparna kopplas från databasen. Teknikerna är särskilt användbara för appar som gör det möjligt för användare att ändra data och spara ändringarna tillbaka till databasen. Även om datauppsättningar är en bevisad framgångsrik teknik är den rekommenderade metoden för nya .NET-program att använda Entity Framework Core. Entity Framework är ett mer naturligt sätt att arbeta med tabelldata som objektmodeller och har ett enklare programmeringsgränssnitt.

En parametriserad fråga returnerar data som uppfyller villkoren för en WHERE sats i frågan. Du kan till exempel parametrisera en kundlista för att endast visa kunder i en viss stad genom att lägga WHERE City = @City till i slutet av SQL-instruktionen som returnerar en lista över kunder.

Du skapar parametriserade TableAdapter-frågor i Datauppsättningsdesignern. Du kan också skapa dem i ett Windows-program med kommandot Parameterize Data Source (Parameterisera datakälla ) på menyn Data . Kommandot Parameterize Data Source skapar kontroller i formuläret där du kan ange parametervärdena och köra frågan.

Anmärkning

När du skapar en parameteriserad fråga använder du den parameter notation som är specifik för databasen som du kodar mot. Datakällorna Access och OleDb använder till exempel frågetecknet "?" för att ange parametrar, så WHERE satsen skulle se ut så här: WHERE City = ?.

Skapa en parameteriserad TableAdapter-fråga

Skapa en parametriserad fråga i Datauppsättningsdesignern

  • Skapa en ny TableAdapter och lägg till en WHERE sats med önskade parametrar i SQL-instruktionen. Mer information finns i Skapa och konfigurera TableAdapters.

    eller

  • Lägg till en fråga i en befintlig TableAdapter och lägg till en WHERE sats med önskade parametrar i SQL-instruktionen.

Skapa en parametriserad fråga när du utformar ett databundet formulär

  1. Välj en kontroll i formuläret som redan är bunden till en datauppsättning. Mer information finns i Binda Windows Forms-kontroller till data i Visual Studio.

  2. På menyn Data väljer du Lägg till fråga.

  3. Slutför dialogrutan Search Criteria Builder och lägg till en WHERE sats med önskade parametrar i SQL-instruktionen.

Så här lägger du till en fråga i ett befintligt databundet formulär

  1. Öppna formuläret i Windows Forms Designer.

  2. På menyn Data väljer du Lägg till smarttaggar för fråga eller data.

    Anmärkning

    Om Lägg till fråga inte är tillgängligt på menyn Data väljer du en kontroll i formuläret som visar den datakälla som du vill lägga till parameteriseringen i. Om formuläret till exempel visar data i en DataGridView kontroll väljer du det. Om formuläret visar data i enskilda kontroller väljer du valfri databunden kontroll.

  3. I området Välj datakälla väljer du den tabell som du vill lägga till parameterisering i.

  4. Skriv ett namn i rutan Nytt frågenamn om du skapar en ny fråga.

    eller

    Välj en fråga i rutan Befintligt frågenamn .

  5. I rutan Frågetext skriver du en fråga som tar parametrar.

  6. Välj OK.

    En kontroll för att mata in parametern och knappen Läs in läggs till i formuläret i en ToolStrip kontroll.

Fråga efter null-värden

TableAdapter-parametrar kan tilldelas null-värden när du vill fråga efter poster som inte har något aktuellt värde. Tänk till exempel på följande fråga som har en ShippedDate parameter i sin -sats WHERE :

SELECT CustomerID, OrderDate, ShippedDate
FROM Orders
WHERE (ShippedDate = @ShippedDate) OR (ShippedDate IS NULL)

Om det här var en fråga på en TableAdapter kan du fråga efter alla beställningar som inte har levererats med följande kod:

ordersTableAdapter.FillByShippedDate(northwindDataSet.Orders, null);

Så här aktiverar du en fråga för att acceptera null-värden:

  1. I Datauppsättningsdesignern väljer du frågan TableAdapter som måste acceptera null-parametervärden.

  2. I fönstret Egenskaper väljer du Parametrar och sedan knappen ellips (...) för att öppna redigeraren för parametrar.

  3. Välj parametern som tillåter null-värden och ange egenskapen AllowDbNull till true.