Zum Inhalt springen

Kosinator

Mitglieder
  • Gesamte Inhalte

    83
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von Kosinator

  1. Hallo, Es geht um die allgemeine Frage, ob auch eine Machbarkeitsstudie als Abschlussprojekt in Ordnung ist, ich meine damit konkret, dass eine Anwendung für mobile Endgeräte, also PDAs, Smartphones und allg. Handies nicht wie anzunehmen in JAVA gecodet wird, sondern "erstmal" in C#, und damit "nur" Windows-mobile Endgräte bedient werden. Der Sinn und Zweck ist einfach die Zeit und damit Kostenersparniss, dem Entwickler (mir) fällt es sicherlich einfacher, ein Programm in seiner gewohnten (Entwicklungs)Umgebung und seiner gewohnten (.Net)Sprache zu entwerfen, als sich nicht nur auf einem anderen Terrain (Handys) sondern in einer anderen Welt (java) zu bewegen. Falls das Produkt (Programm) bei Kunden guten anklang findet, lässt sich eine so geartete Anwendung ja dennoch auf allgemeinere Platformen "portieren" (neu schreiben). Was meint Ihr, Go oder No ? Gruß, Kosi
  2. Hallo nochmal und erstmal danke für eure Anregungen. Nach ansprache mit meinem Vorgesetzten am Freitag, sind beide Vorschläge (erstmal) vom Tisch; Mir wurde ein völlig anderes Projekt "nahegelegt", welches ich im Folgenden kurz beschreiben werde; Auch zu diesem Projekt wären Stellungsnahmen interessant und hilfreich, also, her mit der Kritik. Projekt: Entwickeln eines mobilen Programms zur Organisation von Kolonnen und Baustellen. IST: Wir, als Firma SoWieSo entwickeln Branchensoftware für den (XY-)Bau. Von einigen Kunden kam bereits der Wunsch, seine eigenen Kolonnen mithilfe unserer Software besser verwalten zu können. Bisher müssen Kolonnenleiter bei Ankunft und beim Verlassen der Baustelle mit der Zentrale Rücksprache halten, etwa welche Mitarbeiter tatsächlich vor Ort sind, (sein sollten), oder wo die Kolonne nach feritgstellung einer Baustelle als nächstes "gebraucht" wird (vorrangig Pflegeeinsätze). Ausserdem haben einige unserer Kunden verschiedene Lohnsätze für Arbeits- und Wegezeit und hätten daher die Ankunft und das Verlassen von Baustellen gerne automatisch, statt manuel wie bisher, dokumentiert. SOLL: Eine bereits existierende Schnittstelle (werde ich vor diesem Projekt oder "zeitgleich" erstellen) mit den benötigten Daten, also Baustelle, Mitarbeiter, evtl. GPS-Koordinaten, soll mithilfe dem bereits existierenden Protokoll (echt keine Ahnung wie genau ich das machen werde, webseite mit authorifizierung oder anderweitiges protokoll, muss ich mal sehen, ist aber im vorfeld (zeitgleich) mit diesem Projekt bereits vorhanden und damit nicht Teil dieses Projektes) auf mobiele Endgeräte, (PDAs, möglicherweise Handys) übertragen und angeglichen werden können. Somit muss der KolonnenLeiter "nur noch" bei Ankunft und beim Verlassen einer Baustelle die mobiele Applikation starten, um die Ankunfts- Abfahrtszeiten sowie eventuelle MitarbeiterDaten (Franz war heute 2 Stunden später da) zu übertragen, sowie veränderte BaustellenDaten zu erhalten (nächste Baustelle hat sich verändert, Ihr müsst nach B anstatt von A) Ich hoffe es ist mehr oder minder Klar geworden worum es geht. Ich soll ein Programm basteln, welches auf mobielen Geräten, wie Handys, funktioniert, und das mithilfe eines von mir noch zu erstellenden Protokolls (internetbasierend) Daten empfängt und zurück -schickt. (Schnittstelle und Protokoll vorProjekt, gibts schon quasi) Und diese Daten wollen dargestellt werden. Super wäre es auch (Soll Ziel), wenn ich noch die GPS-Koordinaten vom Mobiltelefon mitprüfen/wegschicken könnte, obwohl ich nicht im geringsten weiß, ob Handys sich diese Daten "mal eben so" entlocken lassen (sandbox). Nun ja, soweit, sogut. Ihr habt vielleicht einige Fragen, und ich habe auch einige erstmal zu meinen: Programmiersprache: Gerade für mobile Endgeräte ist JAVA ME sicherlich toll, jedoch bin ich C#-.Net mensch, von daher werde ich vermutlich, als Studie sozusagen das Programm auf .Net basis bauen, und je nach Resonanz unserer Kunden, dann das selbe nochmal in JAVA "Nachprogrammieren". Somit kann ich die Handys auf welchen das Programm lauffähig sein soll (erstmal) auf Windows-mobile-fähige endgeäte beschränken. Zumal ich dann in der gewohnten (VS2k8) umgebung arbeiten kann. Benutztes Protokoll: Nun ja, weiß ich selber noch nicht genau, es soll wähernd oder kurz vor meiner Projektphase "erstellt" werden. Je nach machbarkeit werden entweder die infrage kommenden Baustellen und PersonalDaten bereits etwa für eine Woche im Vorraus schon auf dem Handy gesichert, und dann über das Protokoll die jeweils benötigten Daten (Baustelle-Mitarbeiter) angezeigt (weniger Daten hin und her geschiffe, oder die Daten werden ad hoc zum vom Handy abgefragt. Vorstellbar wäre auch, falls es anders nicht geht, eine mobil-optimierte Webseite, in die, nach Autherefizierung, der Bauleiter Daten einsehen und eintragen kann (eher eie einfachere Variante). Zeitplanung habe ich noch keine, bisher war ich nicht auf dem Handy- programmierungs-markt aktiv, aber mein chef meint, die nächste (XY-)Bau Messe ist bald, und das wäre doch ein werbeträchtiges Thema. Zum Thema Handyding: Spontan fällt mir da noch ein; Ich habe nicht den wichtigsten Thread (wenn ein Anruf reinkommt, z.B.), habe nicht immer Emfang und nicht immer Akku , natürlich auch weniger ressourcen als aufm Rechner. Aber Im prinzip kann ich mich ja dahingehend auch ausserhalb der Projektarbeit "vorbereiten" und Handy-Programmier-Wissen anlegen. Das Coden an sich ist ja nur n wenig GUI mit Datenanbindung auf Knopfdruck, und sollte in einem Wochenende gut zu machen sein. (Zumindest ist das eine Aussage meines Chefs, [nichts für ungut ]) Also, was meint Ihr dazu, in <70h zu schaffen, oder sollte ich versuchen ein anderes Projekt aus dem Boden zu stampfen ? Gruß, Kosi
  3. Alt 20.12.2006, 15:00 Leichen ausm Keller holen?
  4. Hallo zusammen, ich bin noch auf der Suche nach einem geeigneten Abschlussprojekt, und wollte euch um eure Meinung bitten. Erstmal, der (angestrebte) Beruf ist FIAE. Jetzt kommen wir direkt zu den Schwierigkeiten, die sich mir stellen: Also, ich arbeite in einer kleinen (14 Mann, davon zwei Entwickler unf zwei AE-Azubis) Softwareschmiede, die sich quasi mit einem Produkt (umfangreiche Branchensoftware) das täglich Brot erarbeitet. Die Aufgaben meinerseits sind hautsächlich implementierungen von Kundenanpassungen (kleine bis große, mitarbeit an neuen Modulen usw.), bugfixes, performanceverbesserungen, Datenübernahmen von anderen Programmen (und Entwicklung von "Schnittstellen"), und, seit einer Woche verbesserung der Schnittstelle zwichen unserem Programm und unserem favorisiertem CAD Programm (Vertriebspartner). Also ganz normales Tagesgeschäft eben. Das ist auch völlig in Ordnung so. Aber: Projektding? Echt jetzt? Also, ich denke es wäre wiklich, wirklich schwierig den IHK-Prüfern Teilprojekte von von unserem Programm anzubieten, und ohne mehrstündige Einweisung in das Programm (was, wie, warum es tut) würde es unmöglich eine gute Note abzugreifen. Daher muss ein eigenes Projekt her. Nach mehreren Überlegungen ist ein Projekt, die der allgemeinen Produktivität des Betriebs (Controlling) zugutekommen könnte, und zwar ein eigenes Zeiterfassungssystem, oder ein Projekt zur Kundenbetreuung (KundenDatenControlling) übriggeblieben. Im folgenden werde ich kurz auf diese beiden Projekte eingehen (mit pro contra). Bitte helft mir diese zu bewerten (auf Chancen der Annahme/Ablehnung, Durchfürhbarkeit und Zeitmanagement (zu klein, zu groß)) Achso, noch Allgemeinding: Ca. 200 Kunden, pur Windows und .Net (2.0 meißt) Server, .Net 3.5 bei uns intern, Server. An dieser Stelle möchte ich nocheinmal jedem Danken, der sich diesen Post anschaut, und vielleicht positiv - negativ bewertet. Danke. Mir ist bewusst geworden, dass dieser Post nun wirklich lang geworden ist, von daher spare ich mir jatzt auch noch genaueres (Soll-Ist-Zeitplanung etc) zumal die wirklich nur maginal existieren, bis jetzt. p.s.: Wer rechtschreibfehler findet, darf sie behalten.
  5. Nene, bei mir ist das X nicht Ausgegraut oO Ich kann klickern wie ich möchte, die MessageBox wirft kein Event (mit nem Dialogresult.Cancel könnte ich ja leben, und n ausgegrautes Fenster-schließen-X wäre auch okay, aber so, dass man es bedienen kann, es aber nichts tut machts keinen Sinn) Vielleicht liegts an .Net 2.0, win-Vista oder sonst was... Ist ja auch nicht tragisch, aber auch nicht im sinne des erfinders, denke ich. Nope, bei mir nicht^^ Vielleicht hat sich ja diese Kleinigkeit schon mit .Net 3.x erledigt, werde das mal gegenprüfen. Edit: Hebe es gerade mit .Net 3.5 versucht (mbox.Show("test","test",MessageboxButtons.YesNo) Auch das Schließen-X nicht ausgegraut, klickbar ohne funktionalität... Vielleicht liegts an Vista, wer weiß. Edit2: Gerade auf XP und Win7 versucht, ergebniss: Win7 ausgegraut, XP rot (wie Vista), liegt wohl am OS^^
  6. Hallo, mir ist gerade aufgefallen, dass die MessageBox leicht buggy ist * Und zwar, bei Ja/Nein Fragen erscheint die MessageBox "standard-mäßig" mit einem Form-Close-X in der oberen rechten Ecke, die jedoch jegliche Verantwortung von sich weißt. Ich denke man könnte die Mbx ableiten und ein Design ohne Standard-X festlegen, aber ich müsste gefühlte 2-300 Mbx'en ändern, und dafür fehlt mir Lust und Zeit. Hat jemand eine bessere/schnellere Idee ? Das "X" wirft übrigens auch keinen Event (glaube ich) auf dem man sich registrieren könnte, um dann wenigstens in ein paar FrageFenstern das X mit nem DialogResult.Cancel belegen zu können *schade* Weiß vllt. wer ob dieser "design-bug" bals behoben wird ? (googeln nach MessageBox Yes No Cancel liefert natürlich nur einträge mit Yes/No/Cancel - Dialogresults. So, genug gequatscht, ich hoffe der Post ist nicht so wirr und vllt. für jemanden, der gerade mit nem neuen Programm startet (wegen ableiten und so) hilfreich. Gruß, Kosi
  7. Was ich gerne bei Listen mache ist nicht mit Foreach durchgehen, sondern mit for(i = list.Lenght - 1, i>=0, i--) (oder so), dann kann ich auch Items aus der betrachtenden Liste entfernen. Ob das für dein besagtees Problem was nützt, steht jedoch auf einem anderen Blatt^^ gruß
  8. Wegen der HintergrundFarbe: Lass doch den User entscheiden (ich habe ein Win.Form Abgeleitet - MyForm, welches einige einstellungen aus den User Settings benutzt und da kann auch mein Anwender entscheiden (menü-->Extras--> Personalisieren) welche Hintergrundfarbe(n) er möchte, Font übrigens auch) Bei einer "kleineren" anwendung kannste das ja auch übers kontextmenue machen (ColorPickerDialog (oder so)) und dann if(colorDlg.ShowDialog() == Dialogresult.OK) { foreach (Form frm in Application.OpenForms) // Currentforms? { frm.Backcolor = colorDlg.Color; } } vllt. noch mit ner zweiten Foreach durch alle (Unter)Panels laufen je nach Zielsetzung. Nur son Gedanke, vllt ist der Ansatz ja interesannt für dich, Gruß, Kosi
  9. Nope, Insert mit GetDate() geht nicht, genau das ist ja mein Grundproblem, hier eine msdn Seite zu dem Problem. Also DEFAULT GETDATE() (oder auch DEFAULT CURRENT_TIMESTAMP, ist das gleiche (oder selbe?) in SQL 2005) tuts einfach nicht, das war ja das erste was ich versucht habe^^ (Den InsertBefehl macht meine TableBindingSource automatisch (VS2008-c#-generiert), etwa so: int result = 0; if ((this._tbAnrufeTableAdapter != null)) { global::System.Data.DataRow[] updatedRows = dataSet.tbAnrufe.Select(null, null, global::System.Data.DataViewRowState.ModifiedCurrent); updatedRows = this.GetRealUpdatedRows(updatedRows, allAddedRows); if (((updatedRows != null) && (0 < updatedRows.Length))) { result = (result + this._tbAnrufeTableAdapter.Update(updatedRows)); allChangedRows.AddRange(updatedRows); } } Wobei das eigendliche this._tbAnrufeTableAdapter.Update(updateRows) dann ein .Net ding ist, in das ich ohgne weiteres nicht reinsehen kann... Wenn du mir erklären könntest wie der Befehl lautet (deiner meinung nach) dann kann ich dir sagen ob, oder ob nicht er funktioniert). Gruß. p.s.: Ja, ich finde es auch seltsam, dass SQL 2005 GetDate() als Default-Insert nicht akzeptiert p.p.s.: Auf der verlinkten MSDN seite wird vorgeschlagen, entweder die GetDate() Funktion zu überschreiben (overhead riesig), oder sich die Serverzeit eben vorm Update zu holen (mache ich), oder eine eigen Funktion zu basteln, innerhalb der DB (möchte ich nicht) [falls ich das nicht falsch verstanden habe]
  10. Also, Ich werde als Azubi nicht ServerFunktionen in die DB implementieren, wenn es dort noch keine gibt, zumal ich nicht weiß wie ich das aus C# nach SQL 2005 machen würde. (ich glaube du meinst doch (z.B. bei SQL server 2005 [DBName].[Programmierbarkeit].[Funktionen] und da irgendwo) Datenbankfunktionen. Aber theoretich ist das möglicherweise der elegantere und effizientere Weg, das gebe ich zu (effizien, naja, ich kenne den Overhead von DB-spezifischen, selbstgeschrtriebenen Funktionen nicht). Gruß
  11. @dr.dimitri Nein, kann ich nicht. Ich möchte ja nicht die SystemZeit (DateTime.Now (c#)) des Clients eintragen, sondern die SystemZeit des Servers, an dem die Row eingetragen wurde (auf dem die DB läuft), da ich davon ausgehen kann, dass die Client-SystemZeiten nicht syncronisiert sind, und ich sonst probleme mit der Rufweiterschaltung und Gesprächsdauer bekomme (geht um Tapi, sprich Telefone und so). Und die muss ich mir vorher holen. Mag jemand wissen wie? hier: public static DateTime GetServerDate() { DateTime serverDate = new DateTime(); using (SqlCommand command = new SqlCommand(@"SELECT GETDATE()", new SqlConnection(Properties.Settings.Default.MyConnectionString))) { command.Connection.Open(); using (SqlDataReader reader = command.ExecuteReader()) { reader.Read(); serverDate = reader.GetDateTime(0); reader.Close(); } command.Connection.Close(); } return serverDate; } Türlich ohne Try - Open - Catch ex - Finally - close, meine Connections gehen immer, buhahaha. Gruß, Kosi
  12. So ein Mist, laut msdn gibt es wohl keine Möglichkeit beim Insert die GETDATE() der DB die entsprechende Spalte füllen zu lassen Dann werde ich wohl zur Datenbank rennen müssen, mir die "Serverzeit" holen und dann eintragen (nicht Methode überschreiben)... Hoffentlich gibts nicht zu viel traffic wenns bei zehn Leuten oder mehr gleichzeitig klingelt... Danke für eure Bemühungen nochmal, wenn es doch eine bessere Lösung gibt, nehme ich sie gerne in Augenschein. Gruß, Kosi p.s.: Seltsam das SQL das nicht kann, finde ich zumindest.
  13. Nein, leider immer noch nicht... Erstmal mein RowAdd befehl aus C#: private void button2_Click(object sender, EventArgs e) { DS_TelefonTest.tbAnrufeRow rw = dsTel.tbAnrufe.NewtbAnrufeRow(); rw.gdAnruf = Guid.NewGuid(); rw.gdOwner = Guid.NewGuid(); rw.gdAdrStamm = Guid.NewGuid(); rw.AnrufTel = "08005678111"; rw.Benutzer = 2; rw.Status = 1; rw.DauerInMinuten = 0; rw.HopBenutzer = -1; rw.Hop2Benutzer = -1; rw.Hop3Benutzer = -1; //rw.AnrufDatum = DateTime.Now; dsTel.tbAnrufe.AddtbAnrufeRow(rw); tba.Update(dsTel.tbAnrufe); } Also, ich habe zwei Möglichkeiten, die beide nicht funktionieren: 1. DB - NOT NULL DEFAULT GETDATE() // bzw. CURRENT_TIMESTAMP, ist = und c# CollumnDefinition im DataSet: AllowDBNull = false; DefaultValue = <DBNull> Ergebnis: NoNullAlloedException in AnrufDatum 2. DB - NULL DEFAULT GETDATE() // bzw. CURRENT_TIMESTAMP, ist = und c# CollumnDefinition im DataSet: AllowDBNull = true; DefaultValue = <DBNull> Ergebnis: NULL einträge in der DB, nicht GetDate() Was ich möchte ist hoffentlich klar: Das (Server)Datum des Row-Inserts als AnrufDatum haben... Danke nochmal für alls die sich mühe geben und gruß Kosi
  14. Ich werds probieren, kann ich aber erst morgen machen (im eigendlichen Projekt) danke schonmal, das klang sehr zuversichtlich (wobei der Create Table - skript aus dem Server management studio dann echt blöd ist (der macht die Klammern, also (getdate())...)...)
  15. Türlich nicht Was passiert. Die DatenBank setzt nicht den Default (GetDate()), sondern einfach den NULL-Wert, da dieser ja jetzt erlaubt ist (scheinbar ist weder NULL noch NOT NULL in der Tabellendefinition das selbe (gleiche?, bin kein Deutschspezialist) wie NULL. Das bringt mich auch nicht weiter, da ich ja das anlagedatum der Row loggen möchte (SQL-serverZeit) Ich kann doch nicht der einzige mit dem Problem sein... Naja, schön weitergooglen....
  16. Hallo und danke für den Tip, hat aber nicht geholfen, mein default in der DB (SQL 2005 übrigens), ist nun ('getdate()'), glaube das ist eher schlimmer als (getdate()) nicht besser, aber es kommt immernoch die exception "AnrufDatum lässt keine nullen zu".... Werde jetzt wiedermal ne Kombination versuchen: SQL - (ganz ohne NULL, also weder NOT NULL noch NULL) und c# - die Collumn - AllowDBNULL = true: vllt. habe ich ja erfolg...
  17. Erstmal danke für die Antwort, Ja, GetDate() soll von der DatenBank verrichtet werden (mit DateTime.Now bekomme ich zwar die Zeit beim Client, aber da diese asyncron laufen (systemzeit ist !=) kriege ich spätestens bei Anrufweiterschaltung, wenn nicht schon bei der Datenhaltung Probleme), da bin ich "sicherer" wenn ich mich an der Serverzeit (der Systemzeit des PCs auf dem der SQL2k5-server läuft) orientiere, da die "absoluter ist" (nein, ich werde keine Zeitsyncronisaton zwischen den Clients erwarten können, oder mit die gute alte "internetzeit" bei jeden Anruf holen oder so)... Die Korrekte Schreibweise ist GetDate() (eigendlich finde ich ja bei SQL alles groß nach genfer konvention, also GETDATE(), aber zum ersten ist SQL nicht case sensitiv, zum zweiten hat den code das "server mamagement studio" erzeugt und zum dritten bekomme ich bei einer nicht vorhandenen (oder falsch geschreibenen sql-prozedur (falls das so heisst) ne andere Exception (früher schon), also das ist nicht die Fehlerquelle... Die Funktion Liefert SQL, d.h. da habe ich nicht mit viel zu tun, wie gesagt, ich nutze Sie an anderen Stellen auch (GetDate() in der WHERE - Klausel z.B.) und da machts keine Probleme. DBS ? Datenbankstruktur? Naja, ich kenne zwar das fachvokabular nur mäßig, aber eine soganannte "relationelle Datenbank" (Etwa 30 Tabellen und vllt. 5 DB-Views, Tabellengröße von 5 Rows bis 50Tausend Rows, Collunms von 2 bis 20 etwa, primary Keys meist GUIDs, teilweise Rendundante Infos, aber dann zweckmäßig, also gewollt) Noch zur Info, ich arbeite zur Zeit an der Tapi (vllt schon aufgefallen^^) und versuche halt eine Übersicht über alle Gespräche zu machen (haben kein TicketSystem für unseren Support, da nur 12-Mann-Firma, und ein Nachhalten, bzw. Überblicken der GEführten Telefonate ist sowohl für uns als auch für unsete Kunden (mit Tapi-Modul) interesannt. Jetzt habe ich wieder soo viel geschrieben....
  18. Hallo, ich habe ein Problem mit einer Tabelle und bin auch nach zwei Stunden googlen und forsten nicht auf die Lösung gekommen, vllt. ist es trivieler als ich denke und ich hane irgendwo nen Fehler... Also bitte ich euch mal kurz über den Code zu schauen und mir zu sagen, warum mein TableAdapter (der standartTableAdapter) beim update ne "NoNullAllowed-Exception" wirft. Tabellendefinition (in c# beim DB update): string[] sSQLArr = new string[] { "CREATE TABLE [dbo].[tbAnrufe](" + "[gdAnruf] [uniqueidentifier] ROWGUIDCOL NOT NULL CONSTRAINT [DF_tbAnrufe_gdAnruf] DEFAULT (newid())," + "[gdKomm] [uniqueidentifier] NOT NULL," + "[gdAdrStamm] [uniqueidentifier] NOT NULL," + "[AnrufDatum] [datetime] NOT NULL DEFAULT (getdate())," + "[AnrufTel] [nchar](20) COLLATE Latin1_General_CI_AS NOT NULL," + "[Benutzer] [int] NOT NULL," + "[BenutzerTel] [nchar](20) COLLATE Latin1_General_CI_AS NOT NULL," + "[Status] [bit] NOT NULL," + "[DauerInMinuten] [int] NOT NULL," + "CONSTRAINT [PK_tbAnrufe] PRIMARY KEY CLUSTERED ([gdAnruf] ASC)" + "WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]) ON [PRIMARY]", }; wichtig hier: "[AnrufDatum] [datetime] NOT NULL DEFAULT (getdate())," (Dann DataSet, Tableadapter (Standard, VS 2k8) und der Code mit dem Update-befehl(gekürzt): foreach (TAPILibWrapper.TelData teldata in m_TAPITelList) { DS_Telefonate.tbAnrufeRow rw = dsTel.tbAnrufe.NewtbAnrufeRow(); rw.gdAnruf = teldata.GdTelData; rw.gdKomm = teldata.GdAnrufer; rw.gdAdrStamm = teldata.GdAdrStammTel; //rw.AnrufDatum = teldata.AnrufZeit; rw.AnrufTel = teldata.TelNr; rw.Benutzer = Properties.Settings.Default.AktBenutzer; rw.BenutzerTel = "nummer"; rw.Status = teldata.Status; rw.DauerInMinuten = 0; dsTel.tbAnrufe.AddtbAnrufeRow(rw); } m_tbaAnrufe.Update(dsTel.tbAnrufe); rw.AnrufDatum wird nicht gesetzt (soll ja von der DB "gefüllt werden" (hat übrigens den Grund, dass ich mehrere Clients habr und daher die "Serverzeit" (der Zeit des PCs auf dem die DB läuft) eintragen muss, da ich nicht davon ausgehen kann, dass die Clients zeitsyncron laufen. noch n paar Properties von der Tabelle (tbAnrufe) im DataSet: Column AnrufDatum (rest ist in Ordnung): AllowDBNull = false; AutoIncrement = false; DataType System.DateTime; DefaultValue = <DBNull> NullValue = (Throw exeption) ReadOnly = false; Unique = false; ______________________________________________ Ich meine ja, dass das Problem daran liegt, dass ich keinen Wert übergebe, somit ein DBNull - wert gefüllt werden möchte, was ja nicht geht, da der TableAdapter (oder das DataSet, oder der AddRow-Befehl, was auch immer, nen Wert erwartet), aber genau diesen muss ich ja von der DB füllen lassen.... Habe auch schon (mehrmals) versucht, NULL zuzulassen, aber dann steht in der DB einfach NULL statt GetDate(), also das "speicherDatum" drin Hoffe Ihr könnt mir helfen. Gruß, Kosi p.s.: poste ne url zu diesem Thread auch im c# (.Net) Forum, hat ja auch was damit zu tun.
  19. Kosinator

    Menueleiste erstellen

    Copy & Paste, Zwei Klassen aufmachen vorher vesteht sich, und vllt. den Namespace anpassen. Ist so etwa das gewollte Ergebnis, oder gehts um ne Menueleiste (wie im Threadtitel) und nicht um ne Messagebox (selbstdesigned) wie im Thread selbst? Viel spaß damit, bei fragen und anregungen... zum Lernen von OOPs, ist auch "c# von kopf bis fuss" (engl. head first c#) von O'Reilly glaube ich recht gut geeignet. Klasse Form1: using System; using System.Windows.Forms; namespace WindowsFormsApplication6 { public partial class Form1 : Form { private MSBoxForm eigeneMessageBox; // deklaration der Messagebox public Form1() { InitializeComponent(); //initialisiere Box und übergebe Text (z.B. geht auch zuerst mit Standartkonstruktor und dann die Eigenschaft (Text) füllen eigeneMessageBox = new MSBoxForm("Diese Berechnung ist etwa 2000 als Excel-Tabelle entstanden, mit einem Erddurchmesser von 40.000 km." + " Dieser wurde dann 2004 nach einer Information im Physik-Lexikon - heute als Link im Internet nicht mehr präsent - auf 40.030 km korrigiert. " + "bei Lat2 = -180° auf eine solche von 19.903.816,3811353 m. Immerhin ein Unterschied von 133.693,406211399 m. Aber Silentium, das sind nur 0,667 %. " + "Und mal ehrlich, wer würde das merken? Siehe weiter oben, was ist genau?" + "Notiz von mir: nur weil Sie glauben, dass viele junge Leute sich den Dreisatz oder die Prozentrechnung nicht zutrauen, brauchen Sie noch lange nicht "+ "in nem Forum rumflamen. Erstens sollten Sie sich über die aktuelle Bildungspolitik gedanken machen statt unqualifizierende bevorurteilte meinungen kundzutun "+ "zweitens sollten Sie sich vielleicht überlegen, dass sie in einem FachinformatikerForum möglicherweise genau die falsche menschengruppe angreifen könnten, " + "und drittens behaupten andere Forenmitglieder ja auch nicht, dass alte Menschen keinen Plan von OOP haben, obwohl dies in einigen Beispielen durchaus sein mag." + "dennoch viel Spaß mit dem Kram hier, 15 min hats gedauert. inklusive des kleinen textes hier." + "Gruß\r\np.s.: wagen sie es sich nicht sich über mein schriftbild zu beschweren, ich bin selber der meinung dass der Dativ des Genitivs Tod ist, und finde dies " + "bedauerlich, jedoch werde ich diesen text nicht korrekturlesen\r\n" + "karomue 'Charly', im August 2009"); } private void button1_Click(object sender, EventArgs e) { // Auf knopfdruck springt die msBox auf eigeneMessageBox.ShowDialog(); } } partial class Form1 { /// <summary> /// Required designer variable. /// </summary> private System.ComponentModel.IContainer components = null; /// <summary> /// Clean up any resources being used. /// </summary> /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// <summary> /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// </summary> private void InitializeComponent() { this.button1 = new System.Windows.Forms.Button(); this.SuspendLayout(); // // button1 // this.button1.Location = new System.Drawing.Point(12, 12); this.button1.Name = "button1"; this.button1.Size = new System.Drawing.Size(75, 23); this.button1.TabIndex = 0; this.button1.Text = "button1"; this.button1.UseVisualStyleBackColor = true; this.button1.Click += new System.EventHandler(this.button1_Click); // // Form1 // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(284, 264); this.Controls.Add(this.button1); this.Name = "Form1"; this.Text = "Form1"; this.ResumeLayout(false); } #endregion private System.Windows.Forms.Button button1; } } Klasse MSBoxForm using System.Windows.Forms; namespace WindowsFormsApplication6 { public partial class MSBoxForm : Form { public MSBoxForm(string textFuerTextBox) { InitializeComponent(); textBox1.Text = textFuerTextBox; // dadurch liefert die MessageBox den Dialogresult.Canceld zurück beim klick auf den Button CancelButton = button1; // Damit das Form wie ne MessageBox aussieht this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D; this.MaximizeBox = false; this.MinimizeBox = false; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; } } partial class MSBoxForm { /// <summary> /// Required designer variable. /// </summary> private System.ComponentModel.IContainer components = null; /// <summary> /// Clean up any resources being used. /// </summary> /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// <summary> /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// </summary> private void InitializeComponent() { this.textBox1 = new System.Windows.Forms.TextBox(); this.button1 = new System.Windows.Forms.Button(); this.SuspendLayout(); // // textBox1 // this.textBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.textBox1.BorderStyle = System.Windows.Forms.BorderStyle.None; this.textBox1.Location = new System.Drawing.Point(12, 12); this.textBox1.Multiline = true; this.textBox1.Name = "textBox1"; this.textBox1.ReadOnly = true; this.textBox1.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; this.textBox1.Size = new System.Drawing.Size(260, 46); this.textBox1.TabIndex = 2; // // button1 // this.button1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.button1.Location = new System.Drawing.Point(12, 64); this.button1.Name = "button1"; this.button1.Size = new System.Drawing.Size(75, 23); this.button1.TabIndex = 0; this.button1.Text = "OK"; this.button1.UseVisualStyleBackColor = true; // // MSBoxForm // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(284, 99); this.Controls.Add(this.button1); this.Controls.Add(this.textBox1); this.Name = "MSBoxForm"; this.Text = "ErdInfos"; this.ResumeLayout(false); this.PerformLayout(); } #endregion private System.Windows.Forms.TextBox textBox1; private System.Windows.Forms.Button button1; } }
  20. Kosinator

    Menueleiste erstellen

    Hallo erstmal und willkommen bei den Fachinformatikern... Mit ein wenig geduld, und nach dem üblichen verweis auf Openbooks von Gallileo - so etwa - werden sich sicher einige Leute hier finden lassen, die dir zur seite stehen und ratschläge und lösungshinweise für deine problematiken ansprechen. schreib doch einfach erstmal den code von der stelle an der du gerade bist, hier rein, und sag in etwa was du dir vorstellst (hast du ja schon zum teil). dir wird sicher bewusst sein, dass du ohne den quellcode des programms das du verändern möchtest quasi sehr schlechte karten hast, auch solltest du bei jeglicher veröffentlichung fremden, manchmal sogar eigenem codes, der urheberrechtsseite bewusst sein, also eventuelle verweise auf den ururheber miteinfügen, falls die lizens des programmcodes das vorsieht o.ä. viel erfolg und auf wiederlesen, kosi p.s. mit mehr infos (code) ist es wesentlich einfacher zu helfen und man kann mehr tun als dich auf die msdn seiten zu verweisen
  21. DataGridView ? Form ? .Net? 2.0, 3.0, 3.5 ? Transparent? nicht da? so wie alle anderen Fenster in Windows? XP? Vista? 7? Fragen über Fragen. Wenn es das ist was ich denke, wirst du es leider nicht so einfach hinbekommen, dass die Breite der Fenster in Windows gegen null strebt, da du dazu, aus dem Betreffenden Programm heraus, Windows sagen müsstest, wie es die Fenster (und nicht nur deren Inhalt) zu malen hat. [Kann aber auch sein, dass ich mich in dem Punkt täuche, und es ohne Assambly-hacks geht, kannst dich ja mal hier umschauen] Gruß
  22. Du wolltest doch n Kontextmenü, klicke mal rechts aufs Form und überleg mal warum da was auftaucht. Und schau dir mal n paar Grundlagenbücher an bevor du fragst, warum nichts passiert wenn man aud die Knöpfe drückt^^ (Ist nichtmal böse gemeint, auch wenns so rüberkommt)
  23. Hab zwar den MS RaportViewer nie benutzt, aber (falls das kein end-User-Designer ist) könntest du doch 1. Das Event abfangen, welches beim Export nach Excel gefeuert wird, und dann canceln, also e.Cancel() oder 2. Die Klasse ableiten, und die Buttons (falls end User Designer o.ä) disablend oder rausnehmen Hoffe das hilft, gruß
  24. Kosinator

    SQL in .NET

    @ errox: Versuchs mal mit rechtsklick auf die betreffende Tabelle und dann "Skript für Tabelle als" , da findest du die codes die als SQL-Befehle geschickt werden sicherlich. Gruß
  25. jaja, das meine ich auch^^ Einfach ne Form-Application basteln, die Acsecc-Datei als "Datenbank" dranhängen, und dann aufs form ne Textbox (suchfeld) und 3-4 Anzeigefelder knallen, die Properies setzen (via databinding auf nen Dataview z.B.) und diesen über die "Rowfilter" eigenschaft filtern. Zum auslesen genügt das sicher, du kannst auch "ordentlich" die Acsess Tabelle abfragen (mit select like substring gimihm), und noch n Update ans ende, und viola, nicht nur anzeigen der Daten, sondern auch verändern - neuanlage geht 1A. Schu die doch mal die Northwind Datenbank an, und entsprechende sourcen, solltest dich schnell einlesen können, denke ich, nimmste halt dann deine (Als DB )Importiere Acess Datei... Kann gerne auch kurz tippen das "kleine" Programm dafür, mit musterdaten, dauert 30 min, obwohl, warte, ne erst du, wenn du nicht weiterkommst helf ich gerne, aber ich sollte nicht andereLeuts Aufgaben lösen. @ TDM: mit 5-100 "Musterdaten" kann man dieses auch im source erstellen (oder als XML ex-Importieren, schön übersichtlich), aber ich weiß was du meinst. Schönes WE euch

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...