Ich weiss, dass dies vielleicht nicht der beste Ort ist, um dies zu posten aber nach langer Suche seit ihr meine letzte Hoffnung.
Ich habe auf meinem Laptop den SQL Server 08 installiert. Dies hat auch funktioniert und ich konnte mich mit dem localhost verbinden. Danach wollte ich ein neues Entity-Framework im VisualStudio erstellen. Auch dies funktionierte, jedoch leider nur bis ich das Programm das erste mal Testen wollte.
Seitdem kann ich mich nicht mehr mit dem localhost verbinden.
Ich musste für das Entity-Framewok das SP1 für mein VisualStudio installieren. Kann es sein, dass dies den Fehler verursacht? Ein Arbeitskollege meinte MSSQL 08 sei allgemein mit Vista nicht kompatipel. Kann das sein? Wenn dem so wäre, wäre dies ja oberpeinlich für MS. Kann dies irgendwie nicht glauben.
Weiss jemand wie ich den SQL Server zum laufen bringen kann?
Ich schreibe zur Zeit einen Webservice, welcher Daten von einer Oracle-DB ausliest und schreibt. Das auslesen hat ohne Problem funktioniert. Leider habe ich es noch nicht geschafft den Insert zu machen.
Mein Code sieht wie folgt aus:
Nun kommt aber immer folgende Fehlermeldung:
System.Web.Services.Protocols.SoapException: Die Anforderung konnte vom Server nicht verarbeitet werden. ---> System.Data.OleDb.OleDbException: ORA-00928: missing SELECT keyword
bei System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(OleDbHResult hr)
bei System.Data.OleDb.OleDbCommand.ExecuteCommandTextForMultpleResults(tagDBPARAMS dbParams, Object& executeResult)
bei System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult)
bei System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult)
bei System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method)
bei System.Data.OleDb.OleDbCommand.ExecuteNonQuery()
bei PABS.WebService.DataAccess.DatenzugriffsKlasse.PatientEroeffnen(PatientenstammLong Patient) in C:\Projects\PABS.WebService\PABS.WebService.DataAccess\DatenzugriffsKlasse.cs:Zeile 571.
--- Ende der internen Ausnahmestapelüberwachung ---
Ich verstehe nicht, wieso ein Select verlangt wird. Kann mir da jemand weiter helfen?
Ich habe mehrere Versuche gestartet. Unter anderem habe ich auch die Werte anstatt mit Parametern direkt in das Query integriert. Dabei gab es jeweils keine Fehlermeldung aber es wurde auch kein Eintrag in die DB gemacht.
Zudem macht es anscheinend keinen Unterschied, ob man das Query mit ; beendet oder nicht.
Ich komme hier einfach nicht weiter und das Internet ist zu diesem Thema leider auch wiedersprüchlich. Kann mir jemand den entscheidenden Hinweis geben?
So wie du das Programm geschrieben hast sollte dies eigentlich stimmen.
Meiner Meinung nach könnte es vielleicht sein, dass this.cardService.Url den Port entfernt. Damit habe ich aber keine Erfahrung und kann dir somit auch nicht wirklich weiter helfen.
Was ihr da geschrieben habt funktioniert sicherlich aber um Daten aus einer XML-Datei zu verarbeiten, eignet sich meiner Meinung nach XSLT am besten.
Es ist relativ einfach und man hat sich schnell eingearbeitet.
Doch vorsicht: Komplexe Strukturen (wie etwa doppelte foreach-Schlaufen) können nicht generiert werden.
Danke für Eure Disskusion. Ich sehe, dass in diesem Bereich noch nachholbedarf besteht.
Ich möchte euch nun noch meine Lösung präsentieren:
Ich stelle die Objekte in einem DataGridView dar und lade dieses immer wieder mit neuen Daten. Damit ich die Änderungen verfolgen kann, schreibe ich die Werte in Strings. (wenn eine Zelle/Reihe angewählt wird). Danach vergleiche ich diese Werte mit den mit den Zellen und notiere diese falls es Änderungen gegeben hat.
Es ist nicht gerade eine schöne Lösung, da für jede Spalte ein String erstellt werden muss und die Daten bei jedem SelectionChanged-Event in diese Strings geladen werden müssen. Es ist aber einfach zu programmieren und gibt keinen grossen Mehraufwand.
Leider habe ich mich vorher schon bei msdn erkundet und diese Seite entdeckt. Jedoch ohne, dass ich verstanden hätte wie ich nun mein Problem lösen kann.
Ich habe ein Programm geschrieben, welches Daten mittels Entity Framework lädt und in einem DataGridView darstellt.
Nun möchte ich, dass beim Beenden des Programms überprüft wird, ob etwas verändert wurde und dann nachfragt, ob diese Änderungen gespeichert werden sollen.
Ich habe mir gedacht, es könnte so etwas wie eine hasChanges-Methode haben. Leider gibt es diese aber nicht.
Weiss jemand wie ich dies überprüfen kann?
Ich bin gerade an meiner praktischen Abschlussarbeit und wäre deshalb sehr froh, wenn mir jemand helfen kann.
Mein Auftrag lautet Informationen über den Aufbau einer Datenbank von einer Datenbank zu laden und in eine .sql-Datei umzuwandeln, damit man die Datenbank nicht beim Kunden von Hand erstellen muss.
Ich schreibe die Daten in eine XML-Datei und möchte diese dann mit einer XSLT-Vorlage transformieren. Die XML-Datei sieht etwa wie folgt aus:
<Root>
<Spalte Name = kdsifjds1 />
<Spalte Name = kdsifjds 2/>
<Spalte Name = kdsifjds 3/>
<Spalte Name = kdsifjds 4/>
<Constraint Name = sjdoifjs1 Spalte= dkfjfdij1/>
<Constraint Name = sjdoifjs2 Spalte= dkfjfdij2/>
<Constraint Name = sjdoifjs3 Spalte= dkfjfdij3/>
</Root>
Nun mein Problem:
Ich erstelle die Tabelle und lade dazu jede Spalte mit Datentyp etc. Das heisst ich bin in einer for-each Schlaufe. Nun gibt es Spalten die einen Constraint besitzen. Ich möchte nun überprüfen, ob der Name der Spalte gleich dem Attribut Spalte des Constraints ist (das geht noch) und dann den Namen von genau diesem Constriant ausgeben.
Ich schaffe es, dass es die Namen aller Constraints hinschreibt aber nicht ein einzelnes.
In C# würde ich dies mit einer doppelten for-each Schlaufe machen aber dies funktioniert in XSLT irgendwie nicht.
Weiss jemand einen Rat?
Vielen Dank schon im voraus.
es handelt sich um das Entity Framework aber der Fehler tritt im Form auf.
Ich schreibe ein Programm, welches verschiedene Usercontrol in einem Form integriert. Ich habe diese am Anfang des Projekts erstellt und ins Form eingebetet. Danach habe ich Mittels Entity Framework Daten von einer Datenbank geholt und arbeite mit denen sowohl im Form als auch im Usercontrol.
Nun wollte ich nach langem wieder einmal etwas im Form ändern. Als ich auf Form1.cs geklickt habe, kam die Meldung, die ich im Anhang hinzugefügt habe.
Sie lautet:
The specified named connection is either not found in the configuration, not intended to be used with the EntityClient provider, or not valid.
Das komische ist nun aber, dass das Programm einwandfrei funktioniert. Sprich die Verbindung mit der Datenbank funktioniert. Ich habe dann auf Ignore and Continue geklickt. Danach konnte ich das Form zwar wieder sehen, jedoch waren alle Usercontrols aus dem Form gelöscht und es kommt eine Fehlermeldung, wenn man versucht diese wieder einzufügen.
Ich weiss, dass ihr nicht einfach aus dem Nichts die Antwort wisst und etwas Code sehen möchtet. Ich weiss jedoch leider nicht, welchen ich posten müsste. Ich habe es auch schon von den Spezis in unserer Firma untersuchen lassen aber leider wussten die auch nicht weiter. Deshalb versuche ich mein Glück einfach mal. Vielleicht hatte ja jemand das gleiche Problem.
Danke für die vielen Antworten.
Im letzten Post wurde noch mehr Code verlangt.
SGEntities alleDaten = new SGEntities();
public List<Version> dazugehörigeVersionenLaden(String Projektname)
{
List<Version> VersionDaten = new List<Version>();
foreach (Version version in alleDaten.VersionSet.Where(vs => vs.ProjektName.Trim() == Projektname) )
{
VersionDaten.Add(version);
}
return VersionDaten;
}
Ich habe es jetz mit dieser Version gelöst und es funktioniert gut. Der Thread war einfach für mich, damit ich auch verstehe was ich mache.
@GarlandGreene: Ich habe natürlich verschiedene Projektnamen (sonst würde die Variabel keinen Sinn machen) und habe diese auch alle getestet. Es haben alle so funktioniert wie angegeben.
Ich habe nicht unbedingt ein Problem, möchte aber etwas nachfragen, was ich nicht verstehe.
Ich beschäftige mich zur Zeit mit Entity Framework. Dabei kann man mit einer .Where-Methode die Daten einschränken.
Nun die Kuriosität.
Wenn ich überprüfen will, ob ein Wert einer Spalte mit dem Wert einer Variablen(String) übereinstimmt, so funktioniert dies nicht. wenn ich aber einfach mal einen Wert hinschreibe("Wert") so funktioniert dieses.
Nachdem ich dies herausgefunden habe, habe ich es noch auf andere Weise versucht und zum Teil Erfolg gehabt. Nur verstehe ich leider nicht wieso dies zum Teil geht und zum Teil nicht.
Es ist mir klar, dass es so aussieht als ob die Leerschläge im DB-Eintrag diesen "Fehler" verursachen. Ich möchte aber wissen, wieso == "PEKA" funktioniert, während == Projektname nicht funktioniert.(Projektname hat auch den Wert PEKA). Zudem funktionieren alle Versionen, wenn ich einen Double Wert vergleiche.
Ich möchte ein neues Programm schreiben und dabei gleich das Entity Framework testen. Nun habe ich aber eine OracleDB. Ich habe im Netz gesucht und bin nun fast verwirrter als vorher. Zum Teil lese ich, dass es für jeden Provider gehen sollte und zum Teil lese ich, dass es nicht geht.
Ist es nun möglich das Entity Framework für eine OracleDB zu benützen?
Wenn ich es ohne die Variabeln mache, habe ich das Problem, dass 140000 Zeilen ausgelesen werden.
Wie kann ich dann sicherstellen, dass es in der richtigen Zeile den Wert eingibt?
Wenn ich es mit meiner Spezifikation auslese, sollte nur eine Zeile ausgegeben werden.
Ich habe nun mein query mit AND xccmt = ? ergänzt und zusätzlich Command.ExecuteNonQuery() im Code eingefügt aber trotzdem wird keine Änderung vorgenommen.
Diese Art habe ich schon im Netz entdeckt aber ich bin mir nicht sicher, ob dies für mich das richtige ist. Ich möchte ja die bestehenden Werte überschreiben und nicht neu einfügen.
Ich schreibe ein Programm, welches Daten aus der DB via oledbdatareader ausliest. diese Daten kann ich dann verändern. Wenn ich auf den Speichern-Button drücke sollen die Änderungen in der DB gespeichert werden. Ich erstelle dafür den nötigen query.
Nun möchte ich, dass der query an die DB geschickt und ausgeführt wird. Ich habe im Netz nachgesehen und immer nur die Variante entdeckt, in der man mit einem DataAdapter Parameter hinzufügt.
Ich möchte aber mit meinem oledbcommand Objekt den query zurück geben. Ist dies nicht möglich oder mache ich einen Fehler?
Mein Code sieht so aus (query wurde bereits auf Korrektheit geprüft):
Ich habe einen Treeview, welcher die Struktur einer Datenbank wiedergibt. die Struktur ist wie folgt:
Root -> Projekte -> Version -> Tabellen -> Spalten
Nun gibt es Tabellen, welche historisiert werden. Dazu wird eine weitere Tabelle erstellt. Diese hat den gleichen Namen wie die zu historisierende Tabelle, einfach mit dem Prefix HY.
Es wird gewünscht, dass diese Tabellen durch eine Checkbox ein- bzw. ausgeblendet werden können. Um dies zu realisieren möchte ich 2 foreach-Schlaufen erstellen. Die erste soll ein Knotenpunkt (eine Tabelle) auswählen. Danach soll in der 2. der Kotenpunkt mir jeder Tabelle verglichen werden, ob sie aus einem Tabellennamen und dem Prefix HY zusammengesetzt ist.
in etwa so:
von erster Tabelle bis zur lezter
a = tabelle.name
von erster Tabelle bis zur letzer
b = tabelle.name
wenn a = HY + b
a.visible = false
nächste Tabelle
nächste Tabelle
Irgendwie stehe ich mir total auf der Leitung.
Ich habe schon etliche Versuche (mit for- und foreach-Schlaufen) in den Sand gesetzt und weiss nicht mehr weiter.
ps. entschuldigt den Pseudocode aber hoffe er erläutert wie ich es gemeint habe
Diesen Weg habe ich auch schon ausprobiert. Das Problem dort war, dass es ein Array erstellt und wenn ich dann treeview.SelectedNode = a[0] eingebe, wird eine Index out of Range Exception geworfen.
Ich habe überprüft, ob der Name nach dem ich suche auch wirklich der Richtige ist und es hat gestummen. Also müsste es zumindest einen Node finden.
Ich habe einen Treeview der, je nach dem auf welcher Ebene man sich befindet, ein neues Usercontrol anzeigt.
In diesem Usercontrol befindet sich eine Tabelle mit den Details zu den ChildNodes des angewählten Node.
Nun möchte ich dem User die Möglichkeit bieten, mittels Doppelklick in der Tabelle ein bestimmtes Childnode anzuwählen.
Dies funktioniert eigentlich gut, jedoch wird der Treeview nicht aktualisiert.
Ich möchte dies mit dem Befehl treeview.SelectedNode machen, jedoch kann ich den Namen des ChildNode nur als String auslesen, da er aus der Tabelle stammt.
Kann mir jemand einen Tipp geben, wie ich trozdem das bestimmte Node auswählen kann?
Mein Fehler war, dass ich die Werte als Items betrachtet habe.
Man kann ganz einfach einen String mit dem richtigen Wert mitgeben und dieser wird dann ausgewählt.
Ich lade Daten von einer Datenbank in ein Datagridview. Nun habe ich eine Spalte Grösse, welche 3 Werte enthält. (Gross, mittel, klein)
Diese Werte konnte ich ohne Probleme hinzufügen. Ich möchte aber, dass es immer gerade das richtige Item auch anzeigt.
Von der Datenbank erhalte ich die Werte 0-2. Nun schaffe ich es nicht, dass jeweils das richtige Item ausgewählt wird.
Ich habe es mit .Selected und .Items versucht bisher leider ohne Erfolg. Auch bei msdn habe ich nicht herausgefunden, wie dies geht (obwohl bis jetz die immer Infos zu Datagridview sehr hilfreich waren).
Irgendwie finde ich dies frustrierend, da dies doch eigentlich einfach sein sollte.
mein Code sieht in etwa so aus
OracleTabelspace.Items.Add("small");
OracleTabelspace.Items.Add("large");
OracleTabelspace.Items.Add("middle");
while (myReader.Read())
{
if (myReader[3].ToString() == "2")
{
//hier sollte das richtige Item ausgewählt werden
}
TabellenDatenAnsicht.Rows.Add(myReader[0], History, myReader[2], OracleTabelspace, ExcludeFromCodeForge, ForgeAttributesClass, ForgeAttributeSetFunction, ForgeAttributeGetFunction, ForgeCopyWhenNotNull, myReader[9], myReader[10]);
}
Kann mir jemand einen Tipp geben wie ich dies realisieren kann?
Vielleicht liegt es daran, denn ich weis nicht genau wo ich dies machen muss.
Es ist jedoch so, dass VS die EventHandler erkennt (DataGridViewCellEventArgs, DataGridViewRowEventArgs) und im Code hervorhebt. Ausserdem müsste doch sonst eine Fehlermeldung erscheinen.
Oder habe ich das mit den EventHandler falsch vestanden?
Ich habe in meinem Programm ein DataGridView erstellt, in welches ich von Hand Daten einlese. Ich mache dies von Hand, weil ich die Daten zuerst noch geringfügig bearbeiten muss.
Ich möchte, dass mein Programm zweigeteilt ist. das heisst, wenn ich eine Zeile auswähle, soll in der oberen Hälfte die Details angezeigt werden. Dafür brauche ich wieder Daten aus der angewählten Zeile.
Ich schaffe es aber nicht, dass die EventHandler funktionieren. Ich habe es mit SelectionChanged, RowClick, RowContentClick, CellClick und CellContentClick versucht. leider immer ohne Erfolg. Ich habe eigentlich das Gefühl, dass jeder Event hätte funktionieren müssen.
Weiss jemand wieso dies nicht der Fall ist?
zum besseren Verständnis poste ich noch ein Stück meines Codes
Ich schreibe gerade ein Programm, in welchem der Aufbau einer Datenbank dargestellt wird. Ich habe auf der linken Seite einen Treeview erstellt, welcher die Struktur darstellt. (Projekt -> Version -> Tabelle -> Spalte)
Je nachdem welches Level ich auswähle, wird ein bestimmtes Usercontrol geöffnet.
Dies funktioniert alles soweit.
Nun möchte ich, dass dem Usercontrol mitgegeben wird, wie z.B. die Tabelle heisst. Dafür habe ich im Usercontrol Properties erstellt. Damit ich testen kann, ob dieser Wert weitergegeben wird habe ich im Usercontrol eine Textbox erstellt.
Ich habe es aber bisher nicht geschafft, dass dieser Wert angezeigt wird.
Kann mir jemand einen Tipp geben, was ich falsch mache?
ich starte mit einem neuen Projekt, in dem ich Daten aus einer Oracle-DB darstelle.
Nun habe ich mir überlegt auf der linken seite eine Baumstruktur analog zum Explorer in Windows zu erstellen damit die User (alle ohne db kenntnisse) besser zu den gewünschten Daten kommen.
Damit Ihr mich besser versteht versuche ich die Struktur zu erklären:
Ich habe 4 Tabellen.
In der ersten können Projekte ausgewählt werden.
wenn man ein Projekt ausgewählt hat kann man in der 2 Tabelle eine Version auswählen.
In der dritten Tabelle kann eine Tabelle ausgewählt werden und zuletz kann noch die Spalte ausgewählt werden.
ein ast könnte zum beispiel so aufgebaut sein:
Projekt1 -> Version 3.0 -> Personal -> Name
oder so
Projekt2 -> Version 0.1 -> Patienten -> Versicherungsnummer
hat jemand schon mal versucht so etwas zu erstellen?
wenn ja hat mir vielleicht jemand einen Tipp wie ich dies realisieren könnte?
Ich möchte neue Kontakte über den Exchange Server erstellen. Ich kann den Kontakten alle Informationen ausser der Kategorie zuweisen.
Als Provider benutze ich ExOLEDB.
Zum besseren Verständnis poste ich hier einmal ein Beispiel:
um auf den Nachnamen zuzugreifen kann ich urn:schemas:contacts:sn eingeben
Ich bin nun aber seit mehr als 2 Wochen auf der Suche danach wie ich auf die Kategorie zugreifen kann. Leider ohne Erfolg.
Ich wäre unendlich dankbar wenn mir jemand den entscheidenden Tipp geben könnte.
ich habe ein Programm geschriebe, mit welchem ich über den Exchange server auf die Kontaktdaten in einem öffentlichen Ordner zugreife.
es gibt dafür mehrere Methoden. ich habe mich für ExOledb entschieden. es gibt aber auch WebDav etc.
ich poste mal meinen Code vielleicht kannst du ihn ja benützen
string strSql;
string sURL = "http://Servername/public/TestPublicFolder";
ADODB.Connection oCn = new ADODB.Connection();
ADODB.Recordset oRs = new ADODB.Recordset();
ADODB.Fields oFields;
ADODB.Field oField;
oCn.Provider = "exoledb.datasource";
oCn.Open(sURL, "Administrator", "agbadmin", 0);
strSql = "";
strSql = "select * from scope ('shallow traversal of " + "\"";
strSql = strSql + sURL + "\"') WHERE \"DAV:ishidden\" = false AND \"DAV:isfolder\" = false";
strSql = strSql + " ORDER BY \"urn:schemas:contacts:sn\" ";
oRs.Open(strSql, oCn,
ADODB.CursorTypeEnum.adOpenStatic,
ADODB.LockTypeEnum.adLockOptimistic, 1);
Damit solltest du zumindest auf die Daten zugreifen können
Siehe auch den Eintrag Multiple-step OLE DB operation generated errors