Ergebnis 1 bis 9 von 9

Thema: Textbox-Inhalt in Table-Adapter Abfrage

  1. #1
    Neuer Benutzer
    Registriert seit
    04.01.2019
    Beiträge
    6

    Standard Textbox-Inhalt in Table-Adapter Abfrage

    Hallo zusammen,
    kann mir jemand helfen die Variablen sHDD_01 und sHDD_02 in die Table-Adapter Abfrage zu bekommen.
    So Habe ich es (erfolglos) probiert.

    C#:

    private void button1_Click(object sender, EventArgs e)
    {
    string wert_tb = textBox1.Text;
    string sHDD_01 = textBox2.Text;
    string sHDD_02 = textBox3.Text;


    Abfrage:


    (Diese Anweisung wird nicht unterstützt.Gibt es hier vielleicht eine Alternative?) DROP TABLE IF EXISTS dbo.temp


    SELECT * INTO dbo.temp
    FROM [dbo].[gesamt_11_09]
    WHERE (name LIKE @sHDD_01) OR (name LIKE @sHDD_02)




    SELECT[name],[bytes]
    FROM [dbo].[temp]
    WHERE [bytes]
    IN (SELECT [bytes]FROM [dbo].[temp]GROUP BY [bytes] HAVING count([bytes]) >1)
    ORDER BY [bytes] DESC

    Ich hoffe,ich habe mich einigermaßen verständlich ausgedrückt und bedanke mich schon mal.

  2. #2
    Neuer Benutzer
    Registriert seit
    04.01.2019
    Beiträge
    5

    Standard

    Hallo,

    Quick and dirty :
    var query = string.Format("SELECT * INTO dbo.temp
    FROM [dbo].[gesamt_11_09]
    WHERE (name LIKE {0}) OR (name LIKE {1}), sHDD_01, sHDD_02)

    Zudem müsste es vermutlich auch ' Select * from' heißen und nicht into.


    In etwa so :

    var query = string.Format("SELECT * FROM [dbo]. [gesamt_11_09]
    WHERE (name LIKE {0}) OR (name LIKE {1}), sHDD_01, sHDD_02);
    Geändert von Basi (04.01.2019 um 22:24 Uhr)

  3. #3
    Neuer Benutzer
    Registriert seit
    04.01.2019
    Beiträge
    6

    Standard

    Zitat Zitat von Basi Beitrag anzeigen
    Hallo,

    Quick and dirty :
    var query = string.Format("SELECT * INTO dbo.temp
    FROM [dbo].[gesamt_11_09]
    WHERE (name LIKE {0}) OR (name LIKE {1}), sHDD_01, sHDD_02)

    Zudem müsste es vermutlich auch ' Select * from' heißen und nicht into.


    In etwa so :

    var query = string.Format("SELECT * FROM [dbo]. [gesamt_11_09]
    WHERE (name LIKE {0}) OR (name LIKE {1}), sHDD_01, sHDD_02);


    Hallo,
    erstmal danke für die Antwort.
    Das "INTO" müsste stimmen.
    Schreibt das Ergebnis der Abfrage in die temporäre Tabelle dbo.temp
    Das klappt auch.

    Folgende Fehlermeldung vom Assistent:


    Der Assistent hatbeim Konfigurieren der TableAdapter-Abfrage "fillBy" folgende Probleme ermittelt:
    Details:

    Ungültiger/s Text oder Symbol.
    Fehler bei Bezeichner "var"."OUTPUT" wurde erwartet.

    Hier die angepasste Abfrage:


    DELETE FROM dbo.temp
    var query = string.Format("SELECT * INTO dbo.temp
    FROM [dbo].[gesamt_11_09]
    WHERE (name LIKE {0}) OR (name LIKE {1}), sHDD_01, sHDD_02)

  4. #4
    Neuer Benutzer
    Registriert seit
    04.01.2019
    Beiträge
    5

    Standard

    Was willst du damit erreichen, erklär das vllt mal dann kann man dir helfen, die SQL query macht keinen Sinn.

    Was mein Vorschlag macht ist lediglich die Platzhalter mit den richtigen Werten in die Variable query zu schreiben.
    Geändert von Basi (05.01.2019 um 12:54 Uhr)

  5. #5
    Neuer Benutzer
    Registriert seit
    04.01.2019
    Beiträge
    6

    Standard

    Zitat Zitat von Basi Beitrag anzeigen
    Was willst du damit erreichen, erklär das vllt mal dann kann man dir helfen, die SQL query macht keinen Sinn.

    Was mein Vorschlag macht ist lediglich die Platzhalter mit den richtigen Werten in die Variable query zu schreiben.

    So sieht die gesamte Abfrage im SQL Server Managementstudio aus.
    Sie macht Sinn und funktioniert einwandfrei.
    Der erste Teil filtert nach den besagten Teilstrings und schreibt das Ergebnis in eine seperate Tabelle.
    Diese wird im zweiten Teil nach doppelten Werten in der "bytes"-Spalte gefiltert.
    Ausgabe entspricht exakt meinen Vorstellungen.
    Das Ganze würde ich noch gerne in eine Visual C# Anwendung verpacken und die Teilstrings über Textboxen einlesen bevor das SQL-Statement ausgeführt wird.



    DROP TABLE IF EXISTS dbo.temp
    SELECT * INTO dbo.temp
    FROM [dbo].[gesamt_11_09]
    WHERE (name LIKE 'HDD_03%') OR (name LIKE 'HDD_004%')
    SELECT[name],[bytes]
    FROM [dbo].[temp]
    WHERE [bytes]
    IN (SELECT [bytes]FROM [dbo].[temp]GROUP BY [bytes] HAVING count([bytes]) >1)
    ORDER BY [bytes] DESC

  6. #6
    Neuer Benutzer
    Registriert seit
    04.01.2019
    Beiträge
    5

    Standard

    Hmm da sind ja eher 3 Querys aber nun gut.

    var query = string.Format(
    "DELETE FROM dbo.temp
    SELECT * INTO dbo.temp
    FROM [dbo].[gesamt_11_09]
    WHERE (name LIKE {0}) OR (name LIKE {1})" , sHDD_01, sHDD_02);

    Die Query könntest du dann z.B mit ADO.NET ausführen ist ein DB Framework. Habe aber ehrlich gesagt das Gefühl das du noch nicht sehr erfahren bist deshalb lies dich ein und stell hier dann weiter Fragen.

  7. #7
    Neuer Benutzer
    Registriert seit
    04.01.2019
    Beiträge
    6

    Standard

    Zitat Zitat von Basi Beitrag anzeigen
    Hmm da sind ja eher 3 Querys aber nun gut.



    Die Query könntest du dann z.B mit ADO.NET ausführen ist ein DB Framework. Habe aber ehrlich gesagt das Gefühl das du noch nicht sehr erfahren bist deshalb lies dich ein und stell hier dann weiter Fragen.
    DELETE FROM dbo.temp
    var query = string.Format("SELECT * INTO dbo.temp
    FROM [dbo].[gesamt_11_09]
    WHERE (name LIKE {0}) OR (name LIKE {1}), sHDD_01, sHDD_02)

    Ergebnis:
    Die Anwendung befindet sich im Haltemodus
    Ihre App wurde angehalten, aber es gibt keinen anzuzeigenden Code, da alle Threads externen Code ausgeführt haben (normalerweise System- oder Frameworkcode).

    Daß ich das wieder zu hören bekomme(also in der Evolutionsstufe auf Neandertaler-Niveau)war mir klar.
    Ich denke halt einfach ,daß ich um Auto zu fahren,nicht unbedingt verstehen muß ,wie ein Automatik-Getriebe funktioniert.
    Wenn ich dann demnächst in Rente gehe,kann ich mich intensiver mit der Materie befassen.

  8. #8
    Neuer Benutzer
    Registriert seit
    04.01.2019
    Beiträge
    6

    Standard

    Hallo,
    bin inzwischen etwas weitergekommen.
    Habe im SQL Server Management Studio eine gespeicherte Prozedur erstellt der man zwei Parameter mitgeben kann.
    Mit " EXEC prozedurname Teilstring1,Teilstring2" klappt das einwandfrei.
    Diese zwei Teilstrings würde ich gerne in einer Visual C#-Anwendung aus zwei Textboxen auslesen,der Prozedur übergeben und das Ergebnis
    in einem DataGridView anzeigen.
    Bis dann,
    Havefun


    USE [TEST_01]
    GO
    /****** Object: StoredProcedure [dbo].[SelectStringsTemp] Script Date: 09.01.2019 07:09:05 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    ALTER PROCEDURE [dbo].[SelectStringsTemp]
    @HDD_01 nvarchar(10),
    @HDD_02 nvarchar(10)
    AS
    SELECT * FROM dbo.temp WHERE name LIKE (@HDD_01 + '%') OR name LIKE (@HDD_02 + '%')

  9. #9
    Neuer Benutzer
    Registriert seit
    04.01.2019
    Beiträge
    6

    Standard

    Zitat Zitat von havefun Beitrag anzeigen
    Hallo zusammen,
    kann mir jemand helfen die Variablen sHDD_01 und sHDD_02 in die Table-Adapter Abfrage zu bekommen.
    So Habe ich es (erfolglos) probiert.

    C#:

    private void button1_Click(object sender, EventArgs e)
    {
    string wert_tb = textBox1.Text;
    string sHDD_01 = textBox2.Text;
    string sHDD_02 = textBox3.Text;


    Abfrage:


    (Diese Anweisung wird nicht unterstützt.Gibt es hier vielleicht eine Alternative?) DROP TABLE IF EXISTS dbo.temp


    SELECT * INTO dbo.temp
    FROM [dbo].[gesamt_11_09]
    WHERE (name LIKE @sHDD_01) OR (name LIKE @sHDD_02)




    SELECT[name],[bytes]
    FROM [dbo].[temp]
    WHERE [bytes]
    IN (SELECT [bytes]FROM [dbo].[temp]GROUP BY [bytes] HAVING count([bytes]) >1)
    ORDER BY [bytes] DESC

    Ich hoffe,ich habe mich einigermaßen verständlich ausgedrückt und bedanke mich schon mal.
    Auch das habe ich selbst hingebracht.
    Für die Abfrage kann man im Datenquellen-Designer beliebig viele Parameter definieren.
    In diesem Forum war ich als Laie wohl falsch.
    Die Sache ist erledigt und furtelt.
    Trotzdem danke.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •