Autor Beitrag
moori64
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 76



BeitragVerfasst: Do 19.01.12 19:48 
Hallo,

ich möchte in einen data set ein sql statement absetzten , dies funktioniert im abfragegenerator sehr gut.
wenn ich das aber in winforms ausprobiere eben nicht.

woran liegt das ?


Zuletzt bearbeitet von moori64 am So 22.01.12 10:10, insgesamt 2-mal bearbeitet
Trashkid2000
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 561
Erhaltene Danke: 137



BeitragVerfasst: Do 19.01.12 22:35 
Hi,
wenn ich Deinen Beitrag so lese und versuche, das in (korrekte) deutsche Sprache zu übersetzen ist das schon ein Akt. Wenn Du ein Statement (mit fehlenden Wörtern oder einer Pseudosprache) zum Server schickst, ist es kein Wunder, dass er es nicht versteht oder es nicht interpretieren kann, oder es versucht zu interpretieren, und dann nur Müll bei rauskommt!
SCNR :?

Was ist denn plz für ein Datentyp?
daeve
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 116
Erhaltene Danke: 3

Windows (XP Pro, 7 Ultimate x64)
C#,WPF,Java,ASP.Net, VS 2010 Ultimate (x86)
BeitragVerfasst: Fr 20.01.12 02:06 
ein wenig mehr Code wäre hilfreich... und wie schon Trashkid erwähnt hat, aus deinen "Sätzen" kann man sich schlecht was vorstellen.
moori64 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 76



BeitragVerfasst: Fr 20.01.12 11:47 
Hallo,

ja da habe ich schon wieder zulange gearbeitet und dann kommt soetwas bei raus.

Mehr Quelltext gibt es da garnicht.
Ich bauen mir ein Dataset und ziehe mir das per Drag und Drop in die Maske ,
dann gehe ich auf die erweiterten Eigenschaften und auf den Reiter Abfrage hinzufügen.
Dort gibt es ein Abfragegenerator und den nutze ich dann. Im Feld Filter schreibe ich dann

ausblenden C#-Quelltext
1:
like@ Ort + '%'					


dann steht in der Abfrage

ausblenden C#-Quelltext
1:
2:
3:
Select feld1, feld2, feld3,
from customers
where  (Ort Like @Ort + '%')


Nun müsstest du mir erklären , wie du zu der aussage kommst wenn man pseudocode schickt , bekommt man nur müll zurück.
Ist das den müll was ich geschrieben habe ?

Nun kann man diese Abfrage testen und man erhält ein suchfenster, wo ich dann denn gesuchten eintrag reinschreibe
und dies funktioniert mit der plz oder jeden anderen suchfeld.
wenn ich aber nun die plz in winforms testen will geht es nicht , alles anderen felder mit stadt , name usw funktionieren
einwandfrei.
das feld plz ist vom typ char , da ich ja nicht weiß ob es sich immer um zahlen handelt.


viele grüße

uwe
daeve
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 116
Erhaltene Danke: 3

Windows (XP Pro, 7 Ultimate x64)
C#,WPF,Java,ASP.Net, VS 2010 Ultimate (x86)
BeitragVerfasst: Fr 20.01.12 15:51 
was bekommst du für eine Fehlermeldung ? wie weit kommst du mit debugging ?

eigentlich funktioniert dein Code mit allen Feldern ausser mit plz ?
moori64 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 76



BeitragVerfasst: Fr 20.01.12 16:10 
Hallo David ,
ich bekomme keine Fehlermeldung nur die Felder sind eben leer und das ist mein Problem,
im Abfragegenerator klappt die Abfrage mit der Postleitzahl wunderbar, ich verstehe das auch nicht.


Viele Grüße uwe
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4700
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Fr 20.01.12 16:36 
Ich könnte mir vorstellen das du das % schon im Parameter @Ort selbst unterbringen solltest. So wie jetzt könnte ich mir vorstellen das die meisten Datenbank Server damit ein Problem haben das zu interpretieren. Sich einen Parameter wie eine einfache Textersetzung vorzustellen ist eh oft falsch.
daeve
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 116
Erhaltene Danke: 3

Windows (XP Pro, 7 Ultimate x64)
C#,WPF,Java,ASP.Net, VS 2010 Ultimate (x86)
BeitragVerfasst: Fr 20.01.12 17:20 
versuch doch mal nur:

ausblenden C#-Quelltext
1:
where (Ort Like @Ort)					


das was Ralf meint könnte gut sein.
moori64 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 76



BeitragVerfasst: Fr 20.01.12 19:25 
hallo ihr beiden nicht missverstehen, das mit den ort klappt nur wenn ich eine zahl abfragen will dann eben halt nicht.
aber im abfragegenerator kann man die abfrage testen und da funktioniert es mit zahl und buchstabe.

viele gruüße uwe
daeve
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 116
Erhaltene Danke: 3

Windows (XP Pro, 7 Ultimate x64)
C#,WPF,Java,ASP.Net, VS 2010 Ultimate (x86)
BeitragVerfasst: Fr 20.01.12 19:40 
ev. hast du ein convertierungsproblem, schau doch mal im debugger wie deine Variablen aussehen(Inhalt) und versuche dann den Queriestring genau so im SQL Managemend Studio...
musst halt den Fehler suchen und testen. Wie man debugged weisst du oder ?

Der Generator macht etwas im Hintergrund was du nicht machst in deinem Code...
Trashkid2000
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 561
Erhaltene Danke: 137



BeitragVerfasst: Fr 20.01.12 23:32 
Hi,
also ich mische mich jetzt mal wieder ein, auch wenn ich Dich etwas gedisst haben sollte :?
Das, was ich meinte, ist einfach, dass wenn man etwas zum DBMS schickt, was nicht verstanden werden kann, bekommt man halt ein falsches Ergebnis zurück (in Deinem Fall gar nichts).

Der LIKE-Operator wird auf Strings angewendet.
Kurzes Beispiel: Du hast einen Ort Berlin, und der hat die ID 45.
Wenn Du nun ein LIKE ala %erl% machst, so findet der Server den Ort, wenn Du aber ein LIKE %45% machst, halt nicht. Wie auch?? Er matcht ja nur den Namen.
Hoffe, dass es ein wenig verständlich ist, und Du nun weisst, dass Du die Query irgendwie umschreiben musst...
ramatus
Hält's aus hier
Beiträge: 14



BeitragVerfasst: Sa 21.01.12 09:43 
Hallo,

das ist nicht so schlimm, wenn ich die komplette PLZ in das Feld eingebe findet er auch die Städte,
nur ich möchte das halt nicht immer einzeln eingeben sondern nur abfragen , zeige mir alle städte die in der plz region
1 liegen. das beispiel mit den like habe ich von ein schulungs cd. ich dachte ja das die wenigstens wissen was sie machen.


viele grüße

uwe
Trashkid2000
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 561
Erhaltene Danke: 137



BeitragVerfasst: Sa 21.01.12 13:11 
Ach, Du bist hier mit mehreren Accounts unterwegs?
Ist ja kompliziert.
user profile iconramatus hat folgendes geschrieben Zum zitierten Posting springen:
[...]wenn ich die komplette PLZ in das Feld eingebe findet er auch die Städte[...]
Das bezweilfle ich ja irgendwie. Zumindest, wenn PLZ und Ortsname in verschiedenen Spalten stehen (so wie es auch sein sollte), und es nicht in der Form "10245 Berlin" in die Datenbank geklatscht wurde.

Also wenn PLZ und Ort in der Tabelle als varchar gespeichert sind, so dürfte Dir so ein Statement weiterhelfen:
ausblenden SQL-Anweisung
1:
2:
3:
SELECT Ort, PLZ, ...
FROM customers
WHERE  (Ort Like @Ort) OR (PLZ Like @Plz);

@Ort bekommt die Platzhalter "%...%" und @Plz nur "...%". Somit werden Orte inkl. PLZ gefunden, wo @Ort irgendwo im Ortsnamen vorkommt, oder wo die PLZ so anfängt, wie es in @Plz eingeschränkt wurde.
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4700
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Sa 21.01.12 13:41 
Ähm .... gilt hier user profile iconramatus == user profile iconmoori64 ??
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Sa 21.01.12 14:04 
Hallo zusammen,

ich habe den Doppel-Account schon gemeldet (gemäß Richtlinien 4.7) und daher schließe ich dieses Thema hier solange sich nicht ein Admin dessen angenommen hat.
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Sa 21.01.12 23:10 
Hallo!

Das mit dem Doppelaccount hat sich geklärt.

Was aber bitte noch behoben wird, ist der nicht-existente erste Beitrag. Das ist sehr unhöflich gegenüber anderen Nutzern, wenn die erstmal den "wirklichen" Eröffnungsbeitrag im Thread suchen dürfen! :mahn:

Grüße,
Christian

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
moori64 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 76



BeitragVerfasst: So 22.01.12 10:14 
hallo christian,

wie trashkid schon bemerkte war der erste artikel nicht wirklich verständlich vormuliert .
deshalb habe ich ihn entfernt und darunter versucht mein problem besser zu beschreiben.
dies bitte ich zu entschuldigen.


mein problem hat sich aber immer noch nicht gelöst.

ich will in der spalte filter vom ort und spalte postleitzahl immer abfrage durchführen.
im abfragegenrator kann ich dieses statement doch testen und da schicke ich das doch auch an die datenbank und es funktioniert tadellos.


gruß uwe
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4700
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: So 22.01.12 15:26 
Damit wir das auch wirklich verstehen wo dein Problem liegt zeig uns am besten dein SQL aus dem Designer das funktioniert und deine Codeentsprechung die nicht funktioniert.
Ich kann nur Vermuten das du von einer an einem Tableadapter generierten Methode sprichst. Wenn dem so ist würde der generierten Code aus der Designer.cs (nur dieser Methode!) ebenfalls helfen. Am besten dazu noch die Spaltendefinitionen der betroffenen Tabelle.
moori64 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 76



BeitragVerfasst: So 22.01.12 16:38 
Hallo Ralf,

damit ihr mein Problem besser versteht , habe ich mal ein paar Screenshorts gemacht.



ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
  // 
            this.pLZ1ToolStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
            this.plzToolStripLabel1,
            this.plzToolStripTextBox1,
            this.pLZ1ToolStripButton});
            this.pLZ1ToolStrip.Location = new System.Drawing.Point(050);
            this.pLZ1ToolStrip.Name = "pLZ1ToolStrip";
            this.pLZ1ToolStrip.Size = new System.Drawing.Size(122425);
            this.pLZ1ToolStrip.TabIndex = 3;
            this.pLZ1ToolStrip.Text = "pLZ1ToolStrip";
            //



Das ist der Code der in der Form1.Designer.cs drin steht mehr nicht.



Gruß uwe
Einloggen, um Attachments anzusehen!
Trashkid2000
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 561
Erhaltene Danke: 137



BeitragVerfasst: So 22.01.12 19:05 
user profile iconmoori64 hat folgendes geschrieben Zum zitierten Posting springen:
[...]Das ist der Code der in der Form1.Designer.cs drin steht mehr nicht.[...]
Nicht wirklich, oder?
Erstens ist das bestimmt nicht der ganze Code des Designers, und zweitens hilft der Code überhaupt nicht bei dem Problem.
So langsam verstehe ich das Problem (auch) überhaupt gar nicht mehr...
ich meine, im Designer siehst Du doch das korrekte Statement. Du musst das doch bloß noch in Code umsetzen.
Und die Frage, mit welcher "Schnittstelle" Du auf die Datenbank zugreifst, ist, glaube ich, immer noch nicht geklärt.