Laden...
R
raiguen myCSharp.de - Member
31020 Salzhemmendorf Dabei seit 10.04.2007 158 Beiträge
Benutzerbeschreibung

Forenbeiträge von raiguen Ingesamt 158 Beiträge

01.04.2008 - 15:58 Uhr

Nich 2 mal das ' sonder " in den string.

Wenn ich das so mache:


strFileName = @"C:\sequence.csv";
using (OdbcDataAdapter da = new OdbcDataAdapter("Select * FROM \"" + strFileName + "\"", c))

dann produziert's bei mir diesen Fehler hier:

ERROR [42000] [Microsoft][ODBC Text Driver] Das Datenbankmodul kann 'C:\Dokumente und Einstellungen\AMDXP\Eigene Dateien\Categories.csv' nicht finden. ...

C#-Code: strFileName = @"C:\sequence.csv";
using (OdbcDataAdapter da = new OdbcDataAdapter("Select * FROM ''" + strFileName + "''", c))
Fehlermeldung:
ERROR [HY000] [Microsoft][ODBC Text Driver] Syntaxfehler in Abfrage. Die Abfrage ist unvollständig.

Habe Dein Beispiel nachgebaut buw dein Codeschnippsel entsprechend verwendet (allerdings halt mit meinen Pfadangaben gewürzt) und erhalte auch die Fehlermeldung. Nur scheint diese halt das SQL-Statement als solches zu betreffen;ergo: die Pfadangabe mit den doppelt einfachen Hochkommas FUNKTIONIERT! soweit. Siehe zur Fehlermeldung u.a.
http://msdn2.microsoft.com/en-us/library/aa937531.aspx

EDIT: Die Syntax bzw der Button Hyperlink einfügen gibt mir n Rätsel auf 🤔

01.04.2008 - 12:05 Uhr

Ähm...🤔 evtl muss statt einfach Hochkomma ein doppelt Hochkomma (=2* SHIFT-# !!!)gesetzt werden, also

SELECT * FROM ''Pfad mit Leerzeichen''
auf jeden Fall muss das gequoted werden, da sonst berechtigterweise die FROM-Clausel angemeckert wird .
[EDIT]
jo: hab's grad mal auf die schnelle ausgetestet -> 2mal einfaches Hochkomma VOR und NACH der Pfadangabe setzen...
[/EDIT]

01.04.2008 - 11:28 Uhr

moin 🙂
Also... soweit ich weiss, müssen Pfadangaben, die Sonder-/Leerzeichen enthalten, gequotet werden; will sagen: Pfadliteral in einfache Hochkommas einbetten:

SELECT * FROM **:::

30.03.2008 - 21:44 Uhr

Nun möchte ich je nach Benutzerauswahl in die ComboBox.Text "AUT, GER" hineinschreiben.

Ne, ne, das geht nicht. Die Eigenschaft .Text gibt immer den Wert des ausgewählten Item zurück und wird NIE in der Combobox sichtbar.
Zwar kann man Combobox.Text auch expliziet einen Wert zuweisen, allerdings wird dieser immer mit dem ausgewählten Item überschrieben - sofern die Eigenschaft DropDownStyle = DropDownList.

28.03.2008 - 15:00 Uhr

der code ist 5000 loc gross und den werde ich nicht posten... hm...soviel für eine schleife 🤔 wie dem auch sei, wenn du den code nicht posten kannst/willst/möchtest, dann wird dir auch keiner hier eine vernünftige Antwort oder Tipp geben können...

wenn du keine ahnung hast, woran es liegt dann lass es...

ist mit Verlaub gesagt, schon eine Frechheit 8o...und mich sollte es nicht wundern, wenn du keine weiteren Antworten/Tipps (die ja schon weiter oben gegeben wurden...) bekommst...

evntl hat ja einer nen plan, woran es liegen könnte... speicherlecks oder, weil es ne liste ist und zu häufiger zugriff och...plan haben wir alle so oder so, doch ohne ein stückchen Code wird das alles nur zu einer elenden Raterei, worauf keiner so sonderlich Lust hat.

07.03.2008 - 19:18 Uhr

UPDATE projekte SET Projekt='Projekt', Beginn='13.02.2008 14:00:00', Ende='13.02.2008 15:00:00' WHERE ID=1;

MS-Access akzeptiert den Befehl so wie er ist. MS-Access!=MS-SQL, will sagen: was bei Access funktioniert muss noch lange nicht bei SQL so funktionieren; zwischen den beiden gibt es doch den einen oder anderen syntaktischen Unterschied.Im Allgemeinen (und im Speziellen sowieso) empfehle ich, SQL-Statemants bzw -Commandos immer zu parametrisieren, so dass der Server bzw die Datenbank anhand des Parametertyps die entsprechende Konvertierung durchführen kann. Bei Codeseitigem Erstellen eines SQL-Statements würde das in diesem Beispiel wie folgt aussehen (quick&dirty):

... //--Abfrage vorbereiten
static string strSQL = "UPDATE projekte " +
"SET Projekt=@PROJEKT, " +
"Beginn=@STARTDATUM, " +
"Ende=@ENDDATUM " +
"WHERE ID = @ID";

static SqlCommand cmd = new SqlCommand(strSQL, db_con);

// Parameter für cmd vorbereiten
cmd.Parameters.Add("@PROJEKT", System.Data.SqlDbType.VarChar, 15);
cmd.Parameters.Add("@STARTDATUM", System.Data.SqlDbType.DateTime);
cmd.Parameters.Add("@ENDDATUM", System.Data.SqlDbType.DateTime);
cmd.Parameters.Add("@ID", System.Data.SqlDbType.Int);

...//--Parameter bestücken
cmd.Parameters[0].Value = ...;
cmd.Parameters[1].Value = ...;
cmd.Parameters[2].Value = ...;
cmd.Parameters[3].Value = ...;
//--ausführen...

[EDIT] @FZelle: genau so seh ich das auch, deswegen mein etwas ausführlicherer Beitrag 😉
[/EDIT]

05.03.2008 - 12:49 Uhr

Spaltenköpfe (zur Laufzeit) bspw. grau darstellen:

... // vorzugsweise im form_load()
DataGridView1.EnableHeadersVisualStyle = false;
DataGridView1.ColumnHeadersDefaultCellStyle.BackColor = Color.Gray;
...

Selbstredend können Farb- und sonstige Einstellungen der Komponente auch zur Designzeit gemacht werden 😉

Selbst WinXP Pro hat in der 'standard'-Installation schon einen VisualStyle, der ja bekanntermaßen vom Benutzer indivisuell geändert werden kann (Eigenschaften der Anzeige) 😉 also musst du halt zu individuellen Farbgestaltung des DataGridViews den VisualStyle abschalten...

05.03.2008 - 12:08 Uhr

Moin 🙂

Der 'Fehler' hat nichts mit 'buggy MS' zu tun, sondern ist einfach zu erklären:

Sofern (standardmässig) Applicatin.EnableVisualStyles() gesetzt wird/ist, haben individuelle Farb- und sonstige Einstellungen auf den Spaltenkopf keine Wirkung, weil der aktuelle Style des OS vorrangig ist.
Aber - und hier kommt die einfache Lösung: DataGriedView.EnableHeadersVisualStyle auf false setzen und schon werden die Spaltenköpfe den Wünschen entsprechend (farbig) dargestellt 😉
Siehe auch :rtfm:DataGridView.EnableHeadersVisualStyles-Eigenschaft