Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von chanderegg
Thema: Primary Keys
Am im Forum: Datentechnologien

verwendetes Datenbanksystem: SQLServer2008

Hallo zusammen

Ich möchte eine bestehende Datenbank optimieren. Dazu erstelle ich als erstes Primary Keys.
Nun habe ich eine Tabelle mit 3 Spalten, welche alle Unique sind. Ist es nun besser den Primary Key auf eine Spalte zu definieren und über die beiden anderen einen Index zu legen oder soll ich den Primary Key über alle 3 Spalten definieren?

Vielen Dank für Eure Hilfe
chanderegg

Thema: Excel-Vorlage als normale Exceldatei verwenden
Am im Forum: Office-Technologien

//speichert die aktuellen Spracheinstellungen und öffnet das Excel mit Sprache en-US
            CultureInfo Culterinfo = Thread.CurrentThread.CurrentCulture;
            Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
            Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();

            try
            {
                //Notwendigen Excel-Objects werden instanziert
                Workbook xlWorkbook = xlApp.Workbooks.Open(dfsDatei.Text, 0, false, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", true, false, 0, true, 1, 0);
                Worksheet xlWorksheet = (Worksheet)xlWorkbook.Worksheets.get_Item(1);
                Range xlZellen;  
             }

So öffne ich das Excel. Ich kann das Excel aber nicht mit xls/xlsx speichern, da der Benutzer nachher selber einen Pfad und Dateinamen angeben soll.

Thema: Excel-Vorlage als normale Exceldatei verwenden
Am im Forum: Office-Technologien

Hallo zusammen

Ich habe eine Excel-Vorlage geöffnet und mit Daten abgefüllt. Nun habe ich festgestellt, dass beim 'speichern unter' als Endung immer noch die Vorlage (xlt/xltx) genommen wird.
Wenn ich aber die Vorlage im Windows mit doppel Klick öffne so kommt beim 'speichern unter' die richtige Endung (xls/xlsx).

Kann mir jemand sagen, wie ich dieses Verhalten herstellten kann, wenn ich die Datei via mein Programm öffne?

Vielen Dank für eure Hilfe

chanderegg

Thema: Cancel checkedchanged-Event eines Radiobuttons
Am im Forum: GUI: Windows-Forms

habe ich mir auch schon überlegt aber wo setz ich dann den radiobutton neu. ich weiss ja nicht welcher event als nächstes kommt.

[offtopic] hab leider keine ahnung was ein toggle-button ist aber ich benütze das hier RadioButton.checked
[/offtopic]

Thema: Cancel checkedchanged-Event eines Radiobuttons
Am im Forum: GUI: Windows-Forms

Danke für die schnelle Antwort. Ich sehe aber 2 Probleme dabei.
1. isChecked ist eine Methode. Ich müsste also checked nehmen.
2. Die neue Methode DeSelect müsste nach der Auswahl eines RadioButtons durchgeführt werden. Das heisst der checkedChanged-Event wirft die Mehtode. Dort habe ich dann wieder das gleiche Problem, dass ich die Methode nicht abbrechen und erst einen neuen RadioButton anwählen kann, wenn der Event fertig ist

Thema: Cancel checkedchanged-Event eines Radiobuttons
Am im Forum: GUI: Windows-Forms

Hallo zusammen

Ich habe ein Programm gschrieben, in welchem es 4 RadioButtons gibt. 3 davon sind für den User sichtbar.
Nun möchte ich, dass der User einen der 3 auswählt. Falls aber die Vorbedingungen nicht stimmen, möchte ich, dass der Event abgebrochen wird und wieder der 4 (unsichtbare) RadioButton angewählt wird.

Leider ist es nun so, dass ich keine Möglichkeit finde den Event zu stoppen (keine .Cancel-Methode). Im Netz wird davon gesprochen, dass man den OnCheckedChanged-Event der Basisklasse überschreiben soll. Ich kann dies aber leider nicht machen, da wir bestimmte Standartcontrols verwenden müssen.

Weiss vielleicht sonst noch jemand einen Lösungsweg?

Vielen Dank für Eure Hilfe

Thema: rpc_e_call_rejected bei Feldern die eine Formel beeinflussen
Am im Forum: Office-Technologien

Hallo zusammen

Ich habe ein Programm geschrieben, welches Parameter in ein Excel abfüllt und danach eine SQL-Abfrage startet. Es funktioniert eigentlich einwandfrei bis einer unsere Supporter das ganze ein bisschen einfacher gestalten wollte.
Er hat neben dem Feld eines Parameters eine Formel eingefügt, welche, falls das Feld leer bleibt, einen Standartwert einfügt. So kann das gleiche Query für eine spezifische und eine allgemeine Version verwendet werden.

Beispiel:
Ich fülle mit meinem Programm die Zelle B4 ab. Nun hat er in der Zelle C4 eine Formel "IF(B4 = ''; '1'; B4)" eingefügt und das Query mit der Zelle C4 verknüpft.

Leider kriege ich jetzt jedes 2. mal einen rpc_e_call_rejected Fehler. Bei meiner Internetrecherche habe ich verschiedenste (zum Teil abstruse) Probleme anderer Entwickler und dessen Lösung gesehen, aber bezüglich meinem Problem leider nichts.

Weiss jemand, ob es dafür einen Workaround gibt und wieso dies nur jedes 2. mal auftritt?

Vielen Dank für Eure Infos

Thema: Bereits existierendes QueryTable aktualisieren
Am im Forum: Office-Technologien

Hallo zusammen

Ich öffne via c# ein Excel in welchem auf dem 2. Tab ein bereits existierendes Querytable ist.
Nachdem ich die Parameter angepasst habe, möchte ich nun dieses Table aktualisieren.
Ich habe dazu im Internet auch schon den richtigen Code (hoffentlich) gefunden. Leider sehe ich aber das Table gar nicht.

Hat jemand eine Idee, wie ich das bereits existierende Table aktualisieren kann?

Vielen Dank

hier mein Code:


//zuerst füll ich die Wete in den Tab 1 und dann möchte ich auf dem 2. Tab die aktualisierung machen
xlWorksheet = (Worksheet)xlWorkbook.Worksheets.get_Item(2);

            QueryTables xlQueryTables = xlWorksheet.QueryTables;

            //Count ist immer gleich 0
            if (xlQueryTables.Count > 0)
            {
                for (int i = 1; i ≤ xlQueryTables.Count; i++)
                {
                    if (!xlQueryTables[i].Refresh(System.Reflection.Missing.Value))
                    {
                        MessageBox.Show("Refresh of query table " +
                            xlQueryTables[i].Name + " failed.");
                    }
                }
            }

Thema: Oracle SQL Abfrage abbrechen
Am im Forum: Datentechnologien

Ich würd dir vorschlagen das ganze mit einer Transaction zu machen


using (OracleConnection myConnection = new OracleConnection())
                {
                    myConnection = AGB70.PABS.Common.Var.gblDBInfo.GetDbConnection();
            myConnection.Open();

            //Definiert den Start einer Übertragung
            myTransaction = myConnection.BeginTransaction(); //vielleicht noch isolationslevel hinzufügen

            //Erstellt ein Commandobjekt, welches die SQL-Statements ausführt
            myCommand = AGB70.PABS.Common.Var.gblDBInfo.GetDbCommand();
            mytCommand.Connection = myConnection;
            mytCommand.Transaction = myTransaction;
}

so kannst du schlussendlich mit rollback alles rückgängig machen


if (sys_cancel)
{
 myTranscation.Rollback();
}
ps. am schluss nicht den commit vergessen

Thema: DataSet verschwindet
Am im Forum: Datentechnologien

Ok ich habe noch ein bisschen nachgeforscht.
Ich konnte nun herausfinden, dass das Custom Tool wohl den Fehler verursacht.
Dazu habe ich folgende Fehlermeldung: Custom tool error: Failed to generate code. Exception of type 'System.data.Design.InternalException' was thrown

Ich habe dabei festgestellt, dass die Datei PABSDataSet.Designer.cs gelöscht wird und mit dem Tool neu erstellt werden sollte. Beim erstellen muss dann der Fehler auftreten. Dazu passt auch, dass die Datei PABSDataSet.cs wie folgt aussieht:

namespace AGB70.PABS.BT2PABS.DataImport {
    
    
    public partial class PABSDataSet {
        partial class PS001DataTable
        {
        }
    
        partial class PA001DataTable
        {
        }
    }
}

namespace AGB70.PABS.BT2PABS.DataImport.PABSDataSetTableAdapters {
    
    
    public partial class PS001TableAdapter {
    }
}
Dabei hat es noch verschiedene Andere Tabellen und weitere Adapter. Zudem fehlt der PA001 Adapter.

@Th69: Wie sehe ich, ob die aktuellsten .xs-Dateien verwendet wurden? Die Konvertierung hat mein Chef gemacht und ich habe die Solution vor dem Start 'geupdatet'

Thema: DataSet verschwindet
Am im Forum: Datentechnologien

verwendetes Datenbanksystem: Oracle 9.2

Hallo zusammen

Ich habe ein Programm, welches ohne Probleme funktioniert. Entwickelt wurde es im Visual Studio 08. Nun wird es aber im VS10 weiter entwickelt. In diesem Programm gibt es auch verschiedene DataSets. Nun sollte ich ein DataSet abändern (maxLength eines Strings ändern) und habe dabei folgendes festgestellt:

Sobald ich im DataSet etwas ändere (und sei es nur die Grösse der Tabellen in der optischen Darstellung) wird die ganze Klasse mit den DS neu generiert. Leider finden die Klassen, welche ein DS instanzieren die verschiedenen DS nicht mehr. Ich kriege deshalb 149 Fehler ohne dass ich etwas veränderet hätte.

Ich vermute, dass es irgendwo einen private gesetzt hat ohne dass es sollte. Ich konnte aber leider nirgends ein private finden.

Kann mir jemand dieses Verhalten erklären?

Hier mal noch eine Liste mit den verschiedenen Fehlermeldungen die ich erhalte:
The type name 'RZ100DataTable' does not exist in the type 'PABSDataSet'
The type or namespace name 'RZ100TableAdapter' das not exist in the namespace DataImport.PABSDataSetTableAdapters
Cannot apply indexing with [] to an expression of type 'DataImport.PABSDataSet.PS001DataTable'
'DataImport.PABSDataSet.PS001DataTable' is inaccessible due to its protection level

Thema: Ganze Tabelle in mehreren kleinen Päckchen auslesen
Am im Forum: Datentechnologien

Bin noch einmal einen Schritt weiter gekommen. Ich habe nun folgendes Query


SELECT * FROM
(SELECT ROWNUM rnum, a.* FROM
(SELECT * FROM le001) a WHERE ROWNUM < 20)
WHERE rnum > 10

Dies gibt mir alle Daten, die ich benötige. Doch leider ist dies immer noch nicht das, was ich will, denn die Rownum wird nun auch ausgegeben und ich möchte diese nicht, da das SQL BULK dies nicht versteht (resp. nicht braucht).

vom SyncFramework habe ich noch nichts gehört. werde ich gleich mal anschauen.

Danke

Thema: Bestimmte Tabellen schreibgeschützt machen
Am im Forum: Datentechnologien

wenn du willst könntest du auch Rollen erstellen. Diese kannst du dann den Benutzern zuordnen und falls sich die Rechte mal ändern sollten, kannst du sie einfach verändern.

Thema: Ganze Tabelle in mehreren kleinen Päckchen auslesen
Am im Forum: Datentechnologien

Wie meinst du, wenn jemand anderes Daten modifiziert? ich will ja nur den Export machen. In dieser Zeit darf niemand die Daten verändern und nachher arbeiten sie mit dem SQL Server.
Das mit dem Primärschlüssel geht leider auch nicht. Ich muss mehrere Tabellen exportieren und habe überall unterschiedliche Primärschlüssel.

Dein Query funktioniert, wenn man das * aus dem 2. Select entfernt. Habe ein ähnliches bereits im Netz gefunden. Leider kann ich das * nicht integrieren. Werde es noch ein bisschen versuchen.


SELECT * FROM
(SELECT ROWNUM AS a FROM le001 ORDER BY rownum) v
WHERE v.a BETWEEN 10 AND 20
so funktionierts und gibt die Rownum zurück. Ich müsste aber die Werte dieser Reihen haben.

SELECT * FROM
(SELECT ROWNUM AS a, * FROM le001 ORDER BY rownum) v
WHERE v.a BETWEEN 10 AND 20
Hier gibts den Fehler ORA-00936: Ausdruck fehlt

Vielen Dank für den Tipp. Ich hoffe, dass ich dies noch zum Funktionieren bringe

Thema: Karteninformationen aus SmartCard lesen
Am im Forum: Datentechnologien

hab ich auch gesehen. Funktionierte aber nicht und folgender Abschnitt hat mich dann bewogen aufzuhören und weiter zu suchen.

„The Smart Card API is very easy to use. However, if you want to write a Smart Card application, you must know the commands to send to the card to perform operations such as selecting files, verifying PINs, or reading data. Those commands are called APDU commands, and are described in the specification of the Smart Card you want to access. The purpose of this article is not to explain how to use a Smart Card, but to give you a simple C# API to play with any Smart Card you'd want.“

Thema: Ganze Tabelle in mehreren kleinen Päckchen auslesen
Am im Forum: Datentechnologien

verwendetes Datenbanksystem: Oracle 9

Hallo zusammen

Ich muss Daten von einem Oracle Server auf einen SQL Server exportieren. Leider kann ich das nicht mit dem Tool das im SQL Server zur Verfügung steht, da ich kein Oracle Client installieren darf.
Nun schreibe ich ein Programm. Ich benutze dafür SQL Bulk. Das funktioniert super und ist sehr schnell. Leider muss ich dazu die Daten vom Oracle Server in ein DataSet laden. Bei einer Tabellengrösse von über 5 Mio. Einträgen bekomme ich da eine OutOfMemoryException.
Deshalb mache ich zuerst einen Count und schaue, wieviele Reihen in der Tabelle vorhanden sind.
Wenn über 100'000 Tausend Einträge vorhanden sind, möchte ich diese nacheinander auslesen. Das heisst, zuerst die ersten 100'000 dann die zweiten etc.
Leider funktioniert das nicht. Ich habe versucht die Bedingung mit rownum zu machen (geht für die ersten aber dann nicht mehr) oder mit rowid (entspricht nicht einer Zahl sondern einem generierten String).

Kann mir jemand einen Tipp geben, wie ich mein Problem lösen kann? Konnte bis jetz nur herausfinden, dass meine Lösungsansätze nicht funktionieren

Vielen Dank für eure Hilfe
chanderegg

Thema: Karteninformationen aus SmartCard lesen
Am im Forum: Datentechnologien

genau das hat mir gefehlt.
habe mich mit dem Kunden in Verbindung gesetzt. Die haben das auch nicht.
das Projekt wurde abgebrochen aber trozdem danke für den Tipp

Thema: Karteninformationen aus SmartCard lesen
Am im Forum: Datentechnologien

verwendetes Datenbanksystem: SmartTerminal XX44

Hallo zusammen

Ich möchte die Informationen einer Versichertenkarte auslesen. Dazu wurde mir ein SmartTerminal XX44 zur Verfügung gestellt. Leider finde ich nirgends eine Anleitung, wie ich mit C# nun an diese Daten komme.

Kann mir jemand einen Tipp geben?

Vielen Dank
chanderegg

Thema: Sortierung mit dbnull via linqToSql
Am im Forum: Datentechnologien

verwendetes Datenbanksystem: Oracle

Hallo zusammen

Ich schreibe zur Zeit ein Programm, mit welchem man mittels PDA Leistungen erfassen kann (in einem Spital). Nun kriege ich die Daten via Webservice auf das PDA. Soweit funkioniert alles.

Blöderweise haben Patienten die noch im Spital liegen und nicht klar ist, wenn sie wieder gehen können, noch kein Austrittsdatum. Ich soll nun aber genau nach diesem Austrittsdatum sortieren.

Dies ist mit linqToSql gemacht worden (ich baue das Programm nur aus). Leider ist dies aber nicht möglich, wenn Felder DBNull enthalten. Ich wollte deshalb die Daten auf den maximal Wert setzen. Diese funktioniert jedoch muss ich diese Felder wieder auf null setzen bevor ich sie dem Webservice schicke. Dies lässt DateTime nicht zu.

Hier mein Code


private PABSSmartDeviceDBDataSet.PatientFaelleDataTable CopyToDisplayTable(PABSSmartDeviceDBDataSet.PatientFaelleDataTable Table)
        {
            foreach (PABSSmartDeviceDBDataSet.PatientFaelleRow row in Table)
            {
                if (row.IsAustrittNull())
                {
                    row.Austritt = DateTime.MaxValue;
                }
            }

            PABSSmartDeviceDBDataSet.PatientFaelleDataTable displayTable = new PABSSmartDeviceDBDataSet.PatientFaelleDataTable();
            IEnumerable<PABSSmartDeviceDBDataSet.PatientFaelleRow> query =
                from row
                    in Table.Distinct(new RowComparer())
                orderby row.SortID, row.Abteilung, row.Austritt descending, row.Fachbereich, row.Zimmer, row.Name, row.Vorname
                //orderby row.SortID, row.Abteilung, row.Fachbereich, row.Zimmer, row.Name, row.Vorname
                select row;
            query.CopyToDataTable<PABSSmartDeviceDBDataSet.PatientFaelleRow>(displayTable, LoadOption.OverwriteChanges);

            
            return displayTable;
        }

Kann ich irgendwie die linqToSql abfrage abändern, so dass DBNull keinen Fehler mehr wirft?

Irgendwie finde ich die DataTable-Definition auch nicht super. Der Austritt ist als DateTime definiert, der Default ist DBNull und bei Null wird eine Exception geworfen. Das macht doch irgendwie keinen Sinn oder?

Habe versucht den Default zu ändern aber kann dort höchstens ein Datum eingeben. Beim NullValue konnte ich gar nichts ändern. Welches sind dort die besten Einstellungen?

Vielen Dank für Eure Hilfe
chanderegg

Thema: WCF: XML anstatt Objekt senden
Am im Forum: Netzwerktechnologien

Ok

Nun stellt sich aber wieder die Frage, wie ich das xml an den Service sende.

ich habe versucht es dem Channel mit zu geben oder einer Request Klasse. Beides geht nicht. Soll ich den Service mit einem Http Target ansteuern oder wie geht das?

Thema: WCF: XML anstatt Objekt senden
Am im Forum: Netzwerktechnologien

Hallo Martin

Ja ich arbeite mit .Net.
Der Kunde konnte bis jetzt in der Schnittstelle definieren, welche Daten ausgelesen werden sollen (mittles xml File) und wie das zu sendende xml auszusehen hat (mittels xslt File).
Ich dachte mir, wenn ich wieder ein xml senden kann, so kann ich diese Konfigurationsmöglichkeit erhalten.
Meinst du mit Dienstbeschreibung das .wsdl File (wird auch im xml Format angezeigt)?

Thema: WCF: XML anstatt Objekt senden
Am im Forum: Netzwerktechnologien

Hallo zusammen

Ich muss eine bestehende Schnittstelle für einen Kunden um einen WCF Service erweitern.
Die Schnittstelle liest Daten aus und sendet diese als xml via http oder filewriter (je nach config) an einen biztalk server. nun möchte der Kunde, dass dies auch via wcf geht.

Ich habe vom Kunden seinen generierten Service erhalten. Dieser enthällt jedoch Klassen, von welchen ich dann Objekte senden kann (Objekt-orientiert halt). Da ich aber bereits ein xml Dokument habe und mich vor dem Aufwand scheue, dies zu entschlüsseln, in die Objekte einzufüllen und so zu senden, möchte ich direkt dem wcf Service mein xml senden. (wird ja zum Senden sowieso ein xml)

Nun meine Frage an euch: Wie kann ich einem WCF Service direkt ein xml schicken, welches die Struktur der Objekte enthält?

Falls dies nicht möglich ist, möchte ich euch fragen, ob es besser ist das xml aufzuschlüsseln oder ob ich besser dem Kunden sage, er soll den Service anpassen, so dass ich das xml als String senden kann?

Vielen Dank für eure Hilfe
chanderegg

Thema: Mit Entity Framework und Devart auf Oracle DB zugreiffen
Am im Forum: Datentechnologien

verwendetes Datenbanksystem: Oracle 9

Hallo zusammen

Ich weiss nicht, ob jemand von euch Devart kennt. Ich hoffe aber, dass es jemand gibt der mir helfen kann.

Mein Problem:
Ich habe ein Programm geschrieben, welches mit Entity Framework auf die DB zugreift. Da Entity Framework standartmässig nur auf SQL zugreifen kann, habe ich mir Devart heruntergeladen und installiert. Nun ist der Provider des Entity Frameworks Devart.Data.Oracle.

Bei mir funktioniert das Programm einwandfrei aber wenn ich es bei jemandem laufen möchte, der Devart nicht installiert hat, so kommt die Fehlermeldung:
Unable to find the requested .Net Framework Data Provider. It may not be installed.

Es muss aber irgendwie gehen, ohne dass man Devart bei sich installieren muss. Weiss jemand wie ich das machen kann?

Ich habe in anderen Programmen auch schon mit Devart gearbeitet. Dort habe ich aber OracleDataReaders etc. verwendet und danach die Devart dll's in die Referenzen eingefügt. Beim Entity Framework ist das hingegen nicht nötig.

Vielen Dank für Eure Hilfe

chanderegg

Thema: Mehrzeilige Zelle in einem DataSet
Am im Forum: Datentechnologien

Das heisst, wenn du im Visual Studio ein neues DataSet erstellst, schreibst du jede Zeile selber??? respekt.


Wenn ich also im Deigner alle Oracle Connections auf DbConnections umstelle und denen die richtigen Objekte zuweise, sollte das also Db unabhängig sein?

Bin gerade ein wenig frustriert. Hatte den Auftrag ein Programm auf SQL und Oracle lauffähig zu machen und habe alle TableAdapter gelöscht und von Hand abgefüllt.

Thema: Mehrzeilige Zelle in einem DataSet
Am im Forum: Datentechnologien

@juetho: habe vergessen die Verbindung zu schliessen. Danke für den Hinweis.
Wenn ich beim Debugen das DataSet anschaue, so fehlen die Zeilen.

Das Problem ist, dass ein DataTableAdapter nicht Datenbank unabhänging sein kann. Das heisst, dass wenn ich ein DataTableAdapter für Oracle erstelle, so werden im Designer OracleConnection, OracleCommand und OracleReader verwendet.

Wenn aber ein Kunde mit SQL arbeiter so funktioniert es nicht. Deshalb lade ich die Daten 'von Hand' ins DataSet.

Die Methode .Load sah vielversprechend aus. Leider werden auch dort nur die ersten Zeilen übernommen.



            string query = @"select * from mg001 order by mgspr, mgnbr";

            myConnection = AGB70.PABS.Common.Var.gblDBInfo.GetDbConnection();
            myConnection.Open();

            myCommand = AGB70.PABS.Common.Var.gblDBInfo.GetDbCommand(query, myConnection);
            myReader = myCommand.ExecuteReader();

            MG001DataSet aDataSet = new MG001DataSet();

            aDataSet.Load(myReader, LoadOption.OverwriteChanges, aDataSet.MG001);

            myConnection.Close();

            return aDataSet;


@BerndFfm
Ich habe mehrmals kontrolliert, wo die Umbrüche verloren gehen. Sie gehen verloren, wenn ich sie der Spalte übergebe. Der String selber hat die Umbrüche.
Ausserdem gehen nicht nur die Umbrüche verloren, sondern alle restlichen Zeilen. Das heisst, ich habe danach nur noch die erste Zeile

Thema: Mehrzeilige Zelle in einem DataSet
Am im Forum: Datentechnologien

verwendetes Datenbanksystem: Oracle 10 + Sql 2005

Hallo zusammen

Ich hab ein Programm, welches auf Oracle und Sql laufen muss. Nun fülle ich Daten mit einem DbDataReader in die Datensets ab. Dies hat eigentlich sehr gut funktioniert. Nun habe ich aber auf der DB eine Spalte vom Typ Long.

Wenn ich die auslese, sehe ich im DataReader, dass es ein mehrzeiliger String ist. Wenn ich diesen aber dem DataSet zuweise, so ist nur die erste Zeile im DataSet.

Kann mir jemand von euch sagen, wie ich es schaffe, dass der ganze String ins DataSet kommt?

Hier mein Code:


            string query = @"select * from mg001 order by mgspr, mgnbr";

            myConnection = AGB70.PABS.Common.Var.gblDBInfo.GetDbConnection();
            myConnection.Open();

            myCommand = AGB70.PABS.Common.Var.gblDBInfo.GetDbCommand(query, myConnection);
            myReader = myCommand.ExecuteReader();

            MG001DataSet aDataSet = new MG001DataSet();

            while (myReader.Read())
            {
                MG001DataSet.MG001Row row = aDataSet.MG001.NewMG001Row();

                row.MGSPR = myReader[0].ToString();
                row.MGNBR = myReader[1].ToString();
                row.MGKTX = myReader[2].ToString();
                row.MGLTX = myReader[3].ToString();  //Dieser String ist mehrzeilig

                aDataSet.MG001.AddMG001Row(row);
            }

            return aDataSet;

Vielen Dank für Eure Hilfe

Thema: Exchange Öffentliche Ordner (public folders) auslesen
Am im Forum: Office-Technologien

für dich als programmierer spielt es keine rolle, ob der ordner existiert oder nicht. du musst einfach die daten von der exchange-db laden. ich habe damit aber nun auch ein kleines problem. schau mal meinen post an, dann siehst du schon mal, wie man zu den daten kommt

mein post

das programm muss aber auf dem server laufen damit es funktioniert. die url für den connectionstring ist http:\\server\public\ordner

Thema: Daten aus Exchange mit ADODB auslesen
Am im Forum: Datentechnologien

verwendetes Datenbanksystem: Exchange 2003

Hallo zusammen

Ich habe etwa vor einem Jahr ein Programm geschrieben, welches die Kontaktdaten im Outlook aus einem öffentlichen Ordner in eine Oracle DB speichert. Dies hat einwandfrei funktioniert bis jetzt aber nun habe ich folgendes Problem:
Beim Auslesen der Daten kennt er den Index nicht mehr.

Ich bin wie folgt vorgegangen:
Zuerst die Verbindung herstellen


oCn.Provider = "exoledb.datasource";
oCn.Open(sURL, ExBenutzer, ExPasswort, 0);
funktioniert

dann recordset erstellen


//Definiert den String für die SQL Abfrage
            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\" ";

            //Erstellt Objekte mit den Records
            oRs.Open(strSql, oCn,
                ADODB.CursorTypeEnum.adOpenStatic,
                ADODB.LockTypeEnum.adLockOptimistic, 1);
geht auch und erkennt sogar, dass es einen Eintrag enthält

dann die Daten in ein Objekt schreiben


oFields = oRs.Fields;

                DatenObjekt ExchangeDatenObjekt = new DatenObjekt();

                //Gibt die Anrede aus
                oField = oFields["urn:schemas:contacts:personaltitle"];
                ExchangeDatenObjekt.Anrede = oField.Value.ToString();

                //Gibt den Vornamen aus
                oField = oFields["urn:schemas:contacts:givenName"];
                ExchangeDatenObjekt.Vorname = oField.Value.ToString();

                //Gibt den Nachnamen aus
                oField = oFields["urn:schemas:contacts:sn"];
                ExchangeDatenObjekt.Nachname = oField.Value.ToString();

                //Gibt die Strasse inklusive Hausnummer aus
                oField = oFields["urn:schemas:contacts:mailingstreet"];
                ExchangeDatenObjekt.Adresse = oField.Value.ToString();

                //Gibt die Postleitzahl aus
                oField = oFields["urn:schemas:contacts:mailingpostalcode"];
                ExchangeDatenObjekt.Postleitzahl = oField.Value.ToString();

                //Gibt den Ort aus
                oField = oFields["urn:schemas:contacts:mailingcity"];
                ExchangeDatenObjekt.Ort = oField.Value.ToString();

                //Gibt die Mail-Adresse aus
                oField = oFields["urn:schemas:contacts:email1"];
                ExchangeDatenObjekt.Email = oField.Value.ToString();

                //Gibt die Festnetz-Telephonnummer aus
                oField = oFields["urn:schemas:contacts:telephoneNumber"];
                ExchangeDatenObjekt.Tel = oField.Value.ToString();

                //Gibt die Natelnummer aus
                oField = oFields["urn:schemas:contacts:mobile"];
                ExchangeDatenObjekt.Mobile = oField.Value.ToString();

                //Gibt die Faxnummer aus
                oField = oFields["urn:schemas:contacts:facsimiletelephonenumber"];
                ExchangeDatenObjekt.Fax = oField.Value.ToString();

                //Gibt die Abteilung/Spezifikation aus
                oField = oFields["urn:schemas:contacts:profession"];
                ExchangeDatenObjekt.Abteilung = oField.Value.ToString();

                //Gibt die Firma aus
                oField = oFields["urn:schemas:contacts:o"];
                ExchangeDatenObjekt.Firma = oField.Value.ToString();

                //Gibt das Land aus
                oField = oFields["urn:schemas:contacts:mailingcountry"];
                ExchangeDatenObjekt.Land = oField.Value.ToString();

                //Gibt die URL der Firmenhomepage aus
                oField = oFields["urn:schemas:contacts:businesshomepage"];
                ExchangeDatenObjekt.URL = oField.Value.ToString();

                //Gibt das Erstelldatum aus
                oField = oFields["DAV:creationdate"];
                ExchangeDatenObjekt.Erstelldatum = Convert.ToDateTime(oField.Value);

                return ExchangeDatenObjekt;
Hier gibts nun Probleme, da er den Index nicht erkennt. Ich habe deshalb mal nachgeschaut, was für Indexes so ein Eintrag hat und folgendes Resultat erhalten:
DAV:contentclass: urn:content-classes:person
DAV:isroot:
DAV:defaultdocument:
DAV:getcontenttype: message/rfc822
DAV:lastaccessed:
DAV:resourcetype:
DAV:creationdate: 08.12.2009 16:33:53
DAV:getcontentlanguage:
DAV:ishidden: False
DAV:parentname: http://....
DAV:getcontentlength: 5965
DAV:isstructureddocument: False
http://schemas.microsoft.com/repl/repl-uid: rid:6f96d09eedb6244ca157318e4c0ff76800000011c71e
DAV:displayname: Hans Muster-1072143035.EML
DAV:href: http://...
DAV:isreadonly: False
DAV:getlastmodified: 09.12.2009 14:53:25
DAV:iscollection: False
http://schemas.microsoft.com/repl/resourcetag: rt:6f96d09eedb6244ca157318e4c0ff76800000011c71e6f96d09eedb6244ca157318e4c0ff76800000011c923

Ich frage mich nun wo sind meine Felder hingekommen und wieso hat sich das plötzlich geändert?

ps. Das Programm wird nur alle paar Monate ausgeführt.

Vielen Dank für Eure Hilfe
chanderegg

Thema: Sort DataGridView mit List als Datasource
Am im Forum: GUI: Windows-Forms

Hallo zusammen

Ich habe ein Datagridview, in welchem ich dem User die Möglichkeit bieten will, je nach Wunsch nach einer bestimmten Spalte zu sortieren.
Ich hole die Daten mit Entity Framework von der DB und fülle diese in ein List<>-Objekt.

Nun funktioniert leider die Sortierung nicht, obwohl alle Properties richtig eingestellt sind. Wenn ich beim Event ColumnHeaderMouseClick die sortierung manuel machen will kommt folgender Fehler:
Das DataGridView-Steuerelement kann nicht sortiert werden, wenn es an eine IBindingList gebunden ist, die das Sortieren nicht unterstützt.

Also ist das List<>-Objekt mein Problem. Da es für die programm interne Weiterverarbeitung aber recht praktisch ist, möchte ich eigentlich nicht darauf verzichten.

Hat mir jemand einen Tipp, wie ich das DataGridView trozdem sortierbar machen kann?

Meine manuelle sortierung:


private void dgvMitarbeiter_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
        {
            dgvMitarbeiter.Sort(dgvMitarbeiter.Columns[e.ColumnIndex], System.ComponentModel.ListSortDirection.Ascending);
        }

Thema: DirectXException beim Abspielen eines Videos
Am im Forum: Grafik und Sound

Hallo zusammen

Ich versuche zur zeit zum ersten mal ein Video in einem Form abzuspielen. Nach kurzer Suche habe ich Microsoft.DirectX.AudioVideoPlayback gefunden.

Nun bringe ich dies aber nicht zum laufen. Ich habe nach der Anleitung der Seite Audio Video Playback gearbeitet. Wirkt ja ziemlich simpel.

Leider bekomme ich aber immer folgende Fehlermeldung: Fehler in der Anwendung. Sagt einem ja nicht viel. Ich konnte schlussendlich aber noch einen ErrorCode (-2147220992) und einen ErrorString(DIERR_INSUFFICIENTPRIVS & VFW_E_INVALIDMEDIATYPE ) heraus finden. Habe aber darüber im Internet nichts gefunden.

Der falsche Datentyp kann es nicht sein, da es .avi ist. Kann mir jemand sagen, was dieser Fehler bedeuted oder wo ich das nachsehen kann? Oder weiss vielleicht jemand sogar die Lösung?

Mein Code:


                Video a = new Video(Dateiname);
                a.Owner = this;
                a.Play();
Komme aber nie über die erste Zeile hinaus.

Vielen Dank für Eure Hilfe