Laden...

Forenbeiträge von demondriver235 Ingesamt 496 Beiträge

21.08.2007 - 20:27 Uhr

installer erstellen oder click once deployment verwenden für beides findest du anleitungen in der msdn oder googlen wird dir auch helfen

18.08.2007 - 23:21 Uhr

ich würde controls in einem form zur laufzeit so erstellen

for each (einträge aus deiner config...
{
control ctrl = new control
this.controls.add(ctrl)

}

das ist natürlich fantasie code und soll dir nur auf ein wenig die sprünge helfen

25.07.2007 - 20:42 Uhr

also wenn ich eine win app deploye egal ob mit click once oder setup projekt
ändere ich nie die standard einstellungen für die speicherorte der dateien.
D.h programm dateien = c:\programme... and user data c:\dokumente und einstellungen\user...

Wir haben bei uns in der firma noch nie probleme damit gehabt da user schreibrechte auf c:\programme beim erstellen des builds bekommen und diese rechte ohnehin für c:\dokumente und einstellungen\user... haben.

25.07.2007 - 20:26 Uhr

schwer zu sagen warum?
aber lass dir doch mal den connection string im release modus in einer msgbox ausgeben, nur um zu prüfen ob dieser ok ist.

25.07.2007 - 20:14 Uhr

Hallo,

ich hoffe ich hab mich für das richtige forum entschieden, dieses schien mir aber am passensten zu sein.

Nun zur eigentlichen frage:

Ich habe zwei Server der erste (beides DELL 19Zoll Racks)

P4 3GHZ
2 GB RAM

der andere
Quad-Core Xeon 4x2.13GHz
4 GB RAM

Auf einen muss eine MySQL 5 DB momentane Größe ca. 8GB
ca 100 Zugriffe die Stunde
Und einer soll als Webserver genutzt werden (IIS)
Momentan mit ca 100 Webforms und ca 75 Zugriffe in der Stunde.

Mir kommt es jetzt in erster Linie auf Performance an.
Welchen Server würdet ihr wofür nehmen?

Bin über jeden Tip dankbar!

24.07.2007 - 22:22 Uhr

probier mal das


 if (this.checkBox1.Checked)
            {
                MessageBox.Show("checked");
            }

ps. das checked muss klein (case sensitive)
und das == kannst du dir auch sparen.

24.07.2007 - 21:59 Uhr

hatte auch schon öfter das problem das ich ergebnisse brauchte wo die tabellen teilweise in einer DB2 und teilweise in Mysql waren ich habe das immer so gemacht dass ich die daten zuerst auf eine db gebracht habe und dann dort über joins zum entsprechenden ergebnis gekommen bin, hoffe das hilft dir weiter

24.07.2007 - 19:22 Uhr

kuck dir mal webservices an.

17.07.2007 - 21:45 Uhr

DameWare!

04.07.2007 - 18:46 Uhr

hab das mal in einer webanwendung gemacht


//fill the weeks in the other combobox (for the current year)
        int numberOfWeeks = CalendarWeek.GetCalendarWeekCount(DateTime.Today.Year);

        for (int week = 1; week <= numberOfWeeks; week++)
        {
            DropDownListWeeks.Items.Add(week.ToString());
        }


        //After getting data set selected item to the current week
        object indexOfCurrentWeek = DropDownListWeeks.Items.FindByValue(CalendarWeek.currentKW().ToString());

        this.DropDownListWeeks.SelectedIndex = Convert.ToInt32(indexOfCurrentWeek.ToString()) - 1;

und hier die klasse mit den entsprechenden methoden


using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Collections;
using System.Globalization;

/// <summary>
/// Class with several functions for handling
/// calendar week system
/// </summary>


public class CalendarWeek
{
    public int Year;
    public int Week;
    public CalendarWeek(int year, int week)
    {
        this.Year = year;
        this.Week = week;
    }


   
    //Algorithm for getting the calender week for a date
    public static CalendarWeek GetCalendarWeek2(DateTime date)
    {
        double f = ((14 - date.Month) / 12);
        double a = Math.Floor(f);
        double y = date.Year + 4800 - a;
        double m = (date.Month) + (12 * a) - 3;

        double jd = date.Day + Math.Floor(((153 * m) + 2) / 5) +
            (365 * y) + Math.Floor(y / 4) - Math.Floor(y / 100) +
            Math.Floor(y / 400) - 32045;

        double d4 = (jd + 31741 - (jd % 7)) % 146097 % 36524 %
            1461;
        double L = Math.Floor(d4 / 1460);
        double d1 = ((d4 - L) % 365) + L;

        // get calendar week
        int calendarWeek = (int)Math.Floor(d1 / 7) + 1;

        // get year of the calendar week
        int year = date.Year;
        if (calendarWeek == 1 && date.Month == 12)
            year++;
        if (calendarWeek >= 52 && date.Month == 1)
            year--;

        // return calendarweek
        return new CalendarWeek(year, calendarWeek);
    }



    /// <summary>
    /// Method to number of weeks in a year
    /// </summary>
    /// <param name="year">year for the calendar weeks</param>
    /// <returns>int number of calendar weeks</returns>
    public static int GetCalendarWeekCount(int year)
    {
        
        //Get calendar week for the 31.12 of the year
        System.DateTime baseDate = new System.DateTime(year, 12, 31);
        CalendarWeek calendarWeek = GetCalendarWeek2(baseDate);

        // Wenn dieser Tag in die Woche 1 des neuen Jahres fällt, die Kalenderwoche 
        // des um eine Woche reduzierten Datums ermitteln
     
        if (calendarWeek.Week == 1)
            return GetCalendarWeek2(baseDate.AddDays(-7)).Week;

        // return result
        return calendarWeek.Week;

        
    }


    /// <summary>
    /// Get the current week number
    /// </summary>
    /// <returns>int currentKW the current week</returns>
    public static int currentKW()
    {
        //Initialize gregorian calendar class
        GregorianCalendar gregorianCal = new GregorianCalendar();

        //Get value for current week
        //
        //Parameters:
        //
        //Calendar week rule = 1st week is the week with al least four days in it
        //First day of week = monday
        return gregorianCal.GetWeekOfYear(DateTime.Today, CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday);


    }


   
    }





}

es sollte ja kein problem sein das in einer windows anwendung zu implementieren

29.06.2007 - 11:35 Uhr

DB=MYSQL5

Hi ist es möglich in ein select statement eine spalte einzufügen die mir die record#
ausgibt einzufügen

ich stell mir das ungefähr so vor.

select auto_increment as id . name, vorname ....

Result
1 | Schmidt | hans
2 | Müller | fritz
.....
jemand eine idee?

23.06.2007 - 19:43 Uhr

Also ich speichere alle connectionstring in der xml datei das passwort allerdings verschlüsselt.

18.06.2007 - 21:45 Uhr

wie gesagt plag dich nicht mit vb verweisen rum bau dir das selbst, das hat nur vorteile!

18.06.2007 - 21:39 Uhr

davon mal abgesehen, ich glaube es ist besser sich eben 5minuten hinzusetzen
und ein form mit ner textbox und nem ok und abbrechen button zu bauen
mehr ist das ja nich.
ok vielleicht noch den form text und die überschrift als parameter dazu.

08.06.2007 - 17:38 Uhr

datagridview.allowUserToSortColumns = false;

04.06.2007 - 20:27 Uhr

aber das macht sie doch


CobraAlterCommand = new OleDbCommand("ALTER TABLE addresses ADD COLUMN mesoprim TEXT(50);", CobraConn);

04.06.2007 - 17:14 Uhr

dein dienst wird wahrscheinlich als nutzer SYSTEM ausgeführt oder?
das kannst du im Taskmanager sehen wenn deine db auf einem netzlaufwerk liegt
hat system vielleicht keine schreibrechte?!!??
ließe sich ausschließen wenn du mal eine windwos anwendung zum ausführen verwendest

04.06.2007 - 16:54 Uhr

das versteh ich allerdings auch nicht.
ich würder das ganze jetzt über einen anderen treiben probieren zb odbc.
um zu sehen ob es an der mdb an sich liegt.

04.06.2007 - 16:16 Uhr

das @ ist dafür um escape zeichen in string zu unterdrücken.

richtig sieht der string so aus: (ich hoffe das ich das diesmal fehlerfrei hinkriege 😉
CobraConnStr = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" +
Properties.CoWi.Default.CobraDB + @";User Id=admin;Password=;";

04.06.2007 - 15:46 Uhr

das @ kommt vor das komma

04.06.2007 - 15:14 Uhr

sorry vertippt
muss heißen

CobraConnStr = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" +
Properties.CoWi.Default.CobraDB + @";User Id=admin;Password=";

04.06.2007 - 14:47 Uhr

probier mal bitte so

Provider=@"Microsoft.Jet.OLEDB.4.0;Data Source=" +
Properties.CoWi.Default.CobraDB + @";User Id=admin;Password=;";

04.06.2007 - 13:24 Uhr

kannst du deinen connectionstring mal posten?

04.06.2007 - 12:23 Uhr

um änderungen an der tabellenstruktür vornehmen zu können muss du meines erachtens eine exclusiv geöffnete verbindung erstellen
Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\mydatabase.mdb;Exclusive=1;Uid=admin;Pwd=;

04.06.2007 - 12:15 Uhr

hi,

laut meiner preisliste von 06 kostet das teil 1500 euro.

03.06.2007 - 23:42 Uhr

ich hab ne preisliste von intermec bei der arbeit, den preis kann ich dir dann morgen sagen, aber so viel vorweg mit 69 euro wie dem teil was du gezeigt hattest wirst du nicht hinkommen.

02.06.2007 - 00:11 Uhr

ich versteh nicht ganz was du da machst wenn du keine DB als grundlage hast sind doch alle daten nach dem schließen des forms weg??!!

01.06.2007 - 23:59 Uhr

das gerät kenn ich nicht, sieht aus wie ein controller den du irgendwo einbauen kannst
, ich mein guck mal auf den Preis!!.
Aus erfahrung kann ich dir wirklich geräte von intermec emfehlen z.b. den IF4 hat rs232
schnittstelle und keine eigene logik d.h. für den anschluss an einen rechner gedacht und deshalb auch relativ preisgünstig.

01.06.2007 - 23:37 Uhr

was ist denn die datasource des grids?

01.06.2007 - 21:06 Uhr

PI - wir sind doch alle programmierer oder?

ansonsten

running scared
hard candy
the descent
wilderness
dog soldiers
inside man
fight club
journey to the end of the night
28 days later
in china essen sie hunde
lost highway
mulholland drive
wild at heart
gegen die wand
die fabelhafte welt der amelie

01.06.2007 - 20:46 Uhr

wenn die tags noch nicht beschrieben sind würde ein schreiber(drucker) auch helfen 😁
Im ernst, einfach ausprobieren, ich denke aber das es funktionieren sollte.
Du musst dann natürlich gucken was über com dann letztendlich ankommt dafür bietet sich zum testen wieder hyperterminal an wenn du weißt welche daten sich auf den tags befinden sollten kannst diese hoffentlich im output der comschnittstelle ohne große dokumentation wiederfinden.
Viel spaß

01.06.2007 - 20:28 Uhr

Vielleicht etwas das user controls und threading beinhaltet das fand ich spanned zu verstehen.

01.06.2007 - 20:20 Uhr

Mal angenommen ich liege nicht völlig daneben, kannst du die strings die von den RFID transpondern gelesen werden grob mit den vom EAN128 vergleichen d.h. du hast datenbezeichner und values, selbst wenn du keine db's hast und du weisst welche stellen welche values darstellen z.b. 15 - 21 = typbezeichnung oder so kannst du danach parsen, besser wären datenbezeichner nach denen du suchen kannst um den darauf folgenden value zu finden. Funktionieren wird mit sicherheit beides.

Angenommen es werden die daten verschlüsselt (was meistens nicht der fall ist)
gehe ich mal davon aus das dir der schlüssel dann bekannt sein wird, irgendjemand muss die dinger ja schließlich auch beschreiben und ich gehe mal davon aus das ihr das macht.

01.06.2007 - 20:05 Uhr

bietet es sich nicht an einen dienst zu schreiben der auf dem rechner an dem der leser angeschlossen ist laufen zu lassen der permanent die daten vom com port ließt (wie hyperterminal) und sie dann parst und in eine db schreibt?

01.06.2007 - 19:59 Uhr

warum weist du dem command.commandtext den zuerst eine select anweisung zu?

01.06.2007 - 14:10 Uhr

Erstmal dank für die antworten

Wie schon fast vermutet lag der fehler zwischen den kopfhörern.
in einem form lag im designer ein performance couter der als machine name
meinen entwicklungsrechner gesetzt hatte, den muss ich irgendwann mal mit der toolbox draufgezogen haben, habe ich komplett übersehen.

als user kann man natürlich nicht mit \machinename auf andere rechner im netz zugreifen.
Trotzdem hätte ich mir an irgendeiner stelle eine aussagekräftige Fehlermeldung gewünscht.

01.06.2007 - 13:17 Uhr

Ich hab mir das ganze mal mit dem process Explorer angesehen, aber nichts enddeckt was problem machen sollte, auch alle ordner hat der standard benutzer mindenstens leserechte.

01.06.2007 - 12:30 Uhr

Programm hat ein Problem festgestellt und muss beendet werden.

Informieren Sie Microsoft uber dieses Problen

....

zwei button : Fehlerberichterstattung senden | Nicht berichten

an Talla:
es passiert nichts auf netzwerkordnern oder ähn.
ich schätze das der zugriff auf eine der programm komponenten nicht
erlaubt ist sie möglicherweise in einem ordner liegt auf den der user keinen zugriff hat.
Aber die frage ist warum sollte das so sein?!

01.06.2007 - 11:45 Uhr

die installation funktioniert wunderbar
die anwendung auch, solange der angemeldete user admin ist.

01.06.2007 - 09:28 Uhr

Hallo,
wie schon gesagt ich habe eine windows anwendung für die ich eine setup routine erstellt habe. wenn ich diese auf einem client installiere und dieser local admin rechte hat läuft die anwendung wunderbar, wenn nicht, dann nicht.
Ich bekomme auch keine fehlermeldung, sonder nur dieses fenster das probleme aufgetreten sind und ob der problembericht an microsoft gesendet werden soll.
Ich mache das nicht zum erstenmal und hatte nie probleme, der einzige underschied ist
das ich eine dll eingebunden habe welche mit .net enwickelt wurde.

Jemand eine idee???

31.05.2007 - 17:47 Uhr

Das funktioniert wie mit jedem anderen connector auch.
Du must vorher nur den Verweis zu "IBM DB2 UDB fir iSeries .NET Provider" hinzufügen.

dann kannst du so:


            string connectionString = "deinConnectionString";
            IBM.Data.DB2.iSeries.iDB2Connection con = new IBM.Data.DB2.iSeries.iDB2Connection(connectionstring);

            con.Open();

die verbindung öffnen
über iDB2Command kannst du dann deinen command text angeben usw.
standard halt . Da wird dir google helfen.

28.05.2007 - 00:35 Uhr

Hi,

ich arbeite auch viel mit iSeries und den zugriff auf die datenbank (DB2)
kannst du am besten mit dem mitgelieferten db2 connector reailisieren
ist aber auch z.b. per odbc möglich du kannst auch den iseries access client
emulator mit der pcshell32.dll fernsteuern d.h. per remote commands bedienen.

23.05.2007 - 22:54 Uhr

ich versteh zwar nicht ganz was du meinst
aber klassischer weiser würder man doch
eine tabelle anlegen mit
typ id | typ bezeichnung

und dann nur noch den typ angeben

und die bezeichung über einen join beziehen.

23.05.2007 - 21:51 Uhr

Ich weiss zwar nicht um was für daten es sich handelt
aber ich benutze zum verschlüsseln von passwörtern im
die folgende class die dann nur mit dem entsprechenden
key wieder zu entschlüsseln ist.

der nachteil: ich weiss nicht ob dir das proffessionell genug ist.
der vorteil: es ist datenbank unabhängig, da das ver und ent-schlüsseln vorher stattfindet.

hier die klasse:


using System;
using System.Collections.Generic;
using System.Text;

namespace OOP2
{
    //=============================
    //This Class is used for
    //crypting and decrypting
    //Passwords by using the
    //Key: dein key
    //=============================

    class CryptAndDecrypt
    {

        #region Class variables

        private string key;

        #endregion


        #region Properties

        public string Key
		{
			get { return key; }
		}
 
		public CryptAndDecrypt(string cle)
		{
			key = cle;
        }

        #endregion



        #region encryption

        /// <summary>
        /// Encrypts string
        /// </summary>
        /// <param name="ChaineaEncoder">uncrypted String to crypt</param>
        /// <returns>crypted string</returns>
		public string Encrypt(string ChaineaEncoder)
		{
			string encrypt = null;
  
			for (int i = 0; i < ChaineaEncoder.Length; i++)
			{
				encrypt +=           Convert.ToString(Convert.ToChar((Convert.ToInt16(key[i % key.Length]) + Convert.ToInt16(ChaineaEncoder[i])) % 65536));
			}
  
			return encrypt;
        }

        #endregion


        #region decryption

        /// <summary>
        /// Decrypts string
        /// </summary>
        /// <param name="ChaineaDecrypter">crypted string to decrypt</param>
        /// <returns>uncrypted string</returns>
		public string Decrypt(string ChaineaDecrypter)
		{
			string decrypt = null;
	  
			for (int i = 0; i < ChaineaDecrypter.Length; i++)
			{
				decrypt += Convert.ToString(Convert.ToChar(((Convert.ToInt16(ChaineaDecrypter[i]) - Convert.ToInt16(key[i % key.Length])) % 65536)));
			}
	  
			return decrypt;
        }

        #endregion
    }
}
14.05.2007 - 22:37 Uhr

aha, alles klar danke für die antwort.
dann werde ich wenn ich eine frage habe demnächst darauf achten das ich den thread nach erhalt einer lösung als gelöst markiere

14.05.2007 - 22:12 Uhr

Frage an den Moderator.
Wann werden hier threads eigendlich mal geschlossen oder als gelöst geflagt. Würde vielleicht bei der suche nach antworten in vorhandenen threads helfen wenn man sieht ob eine lösung für ein problem gefunden wurde.

13.05.2007 - 22:04 Uhr

Wenn du was im grid änderst werden die data im datatable aktualisiert sprich was auch immer im grid steht steht auch im datatable, um die daten zurück in die datenbank zu schreiben musst du nur das datatable an eine funtion übergeben die mit hilfe des command builders ein update macht.
Wenn ich das für eine mysql tabelle mach sieht das ungefähr so aus.

        /// <summary>
        /// Updates the datatable to MySQL
        /// </summary>
        /// <param name="dt">datatable to update to mySQL file oop2_forecast</param>
        public void updateForeCastToMysql(DataTable dt)
        {

            //set successflag to false
            MethodSuccess = false;

            //initialize odbc helper stuff & and get connectionstring from config file
            Odbc odbc = new Odbc();
            odbc.getConnectionstringMYSQL();

            //needed to make it look like thats this is the source of the data
            string commandText = @"   SELECT
                                                    Resource, 
                                                    Date,
                                                    QtyInKg,
                                                    QtyInStdUm,
                                                    StdUm,
                                                    Description,
                                                    Class,
                                                    Subclass,
                                                    PmType,
                                                    PmName,
                                                    WfCode,
                                                    FcDatePrism,
                                                    FcType
                                            FROM
                                                    oop2_forecast";


            //Initialize new odbc components
            OdbcConnection odbcConnection = new OdbcConnection(odbc.connectionStringMYSQL);
            OdbcCommand odbcCommand = new OdbcCommand(commandText, odbcConnection);
            OdbcDataAdapter odbcAdapter = new OdbcDataAdapter(odbcCommand);
            OdbcCommandBuilder commandBuilder = new OdbcCommandBuilder(odbcAdapter);

            //Rows Status added 
            odbcAdapter.AcceptChangesDuringFill = false;

            //Open connection
            try
            {
                odbcConnection.Open();
            }
            catch (Exception openEx)
            {
                MessageBox.Show(openEx.Message.ToString());
                return;
            }

            //Data update
            try
            {
                odbcAdapter.Update(dt);
            }
            catch (Exception updateEx)
            {
                MessageBox.Show(updateEx.Message.ToString());
                return;
            }
            finally
            {
                odbcConnection.Close();
            }

            //Set method succes to true
            MethodSuccess = true;
            return;
        }

11.04.2007 - 16:46 Uhr

hast du mal SmartNavigation = true; probiert?

23.03.2007 - 12:48 Uhr

was ist denn der rückgabewert deiner funktion?

vielleicht mal so probieren:



string myValue = SetPersNr("+id+").ToString();

string Scriptfkt = "<script type=\"text/JavaScript\">myValue</script>";
ClientScript.RegisterClientScriptBlock(this.GetType(), "", Scriptfkt);

23.03.2007 - 08:46 Uhr

Hi,

ich bisher javascript nur für clientseitige messageboxen verwendet
das mache ich so.

ScriptMsg = "<script type=\"text/JavaScript\">\n" +
                "window.alert('Connection open Error ' " +  openExeption.Message  + "');\n" +
                "</script>\n";

            ClientScript.RegisterClientScriptBlock(this.GetType(), "", ScriptMsg);

vielleicht hilft dir das ja schon weiter.