Laden...
S
Schnuki myCSharp.de - Member
Studentin Großmehring Dabei seit 01.10.2007 126 Beiträge
Benutzerbeschreibung

Forenbeiträge von Schnuki Ingesamt 126 Beiträge

18.03.2010 - 15:23 Uhr

ja, das meinte ich auch.

die erste liste erstell ich mir lokal und die zweite auch. Um jedoch in der liste der sortedlist was zu speichern muss ich mir doch erst ne liste erstellen um etwas hinzufügen zu können.

18.03.2010 - 15:18 Uhr

Ne, kann ich nicht, denn die erste liste erstell ich mir ja in einer ganz anderen funktion, auf der ich nicht zugreifen kann.

nur die SortedList ist global!

18.03.2010 - 15:15 Uhr

Sorry, ich stand ja voll auf dem Schlauch, hab es jetzt gelöst:



List<string> newPanels = new List<string>();
newPanels = tabnames["TEST"];
newPanels.Add("userPanel");


18.03.2010 - 15:07 Uhr

Hallo zusammen,

ich such nun schon ewigkeiten nach meinem Problem, aber finde keine Lösung. Kann auch sein, dass ich total aufn Schlauch steh.

Ich habe folgende SortedList:


SortedList<string, List<string>> tabnames = new SortedList<string, List<string>>();

ich füge nun meinen string ein und meine Liste:


List<string> panels = new List<string>();
tabnames.Add( "TEST", panels);

die Liste panels ist erstmal leer. Die wird später gefüllt. Da ich jetzt nicht weiß, wie ich zu dem Key TEST auf die Liste zugreifen kann, dachte ich mir, ich erstell mir in der Funktion eine lokale Liste und speicher die Liste aus der SortedList in meine lokale Variable. Jedoch steh ich wieder vor dem Problem, dass ich die Liste aus der Sorted List nicht direkt ansteuern kann.

Kann mir da jemand helfen? Weiß da jemand ne Lösung?

18.03.2010 - 08:07 Uhr

Hallo,

die Gründe, warum ich die Resourcen anders verwalten hätte wollen wäre, dass bei mir in der Firma eine Ordnerstruktur für das SVN angelegt ist und die ist über dem Source ordner.

Aber ich hab gestern noch im Internet gelesen, dass die Resourcen im Source oderner sein müssen, da sie an die Resource datei (.resx) gebunden sind.

Also hat sich meine Frage eh erledigt.

Trotzdem danke, dass du geantwortet hast!

17.03.2010 - 16:43 Uhr

Hallo zusammen,

entweder bin ich zu blöd es zu finden, oder das gibt es wirklich nicht.

ich habe mir eine Resource Datei erstellt, in der ich mehrere Bilder speichere. Doch sobald ich ein Bild hinzufüge, erstellt er mir einen Ordner mit dem Namen "Resource" in meinen Projektordner. Das will ich aber nicht, ich möchte diese Ordner wo ganz anders speichern!

Geht das? Kann ich den verweis von meiner Resource.resx datei ändern, sodass ich meine Bilder wo anders abspeichern kann?

ich hoffe es kann mir jemand helfen!

16.03.2010 - 11:24 Uhr

vielen dank für deine Schnelle Antwort.

Mensch war das einfach und ich such da quer durch die ganzen eigenschaften rum kopfschüttel

Nochmal danke!

16.03.2010 - 11:19 Uhr

Hallo zusammen,

ist es möglich, dass ich z. B. nach zwei MenüItems einen Trennstrich einfüge? Muss ich dafür ein Image verwenden, oder kann ich das manuell irgendwie im Programmcode setzen?

Hat da jemand schon erfahrung mit?

Vielen dank schon mal für die HIlfe!

Gruß, Bianca

15.03.2010 - 15:02 Uhr

Hallo Zusammen,

ich habe ein TabControl, bei dem ich die TabPages nach unten verschoben habe. Soweit so gut, funktioniert das alles, jedoch ist die Formatierung total falsch. Der Strich, der angibt, welches Tab gerade aktiv ist, ist oben statt unten. Und unten ist das Tab offen bzw. sollte ja oben angedockt sein und unten eben abgerundet.

Wie kann ich das ändern? Weiß da jemand etwas?

Ich hab im Internet leider nichts brauchbares gefunden und hoffe, dass mir jemand hier weiterhelfen kann.

Zur veranschaulichung hab ich ein Bild hinzugefügt.

18.03.2009 - 10:06 Uhr

Also jetzt versteh ich das schon, ich wusste nur nicht, dass das DateTime object auch ein struct sein kann, das hab ich eben ent vestanden und hab mich abgemüht, hier alles abzuziehen und alles mögliche...

18.03.2009 - 10:02 Uhr

das wpm_structime, hab ich nicht ausgesucht, denn so wird mir das Datum gespeichert und übergeben! aber danke, ich werd das mal so probieren und dann mal sehen, ob es funktioniert.

18.03.2009 - 09:46 Uhr

Halli Hallo,

ich steh grad total aufn Schlauch, da ich momentan nicht dahinterkomm, wie ich die Stunden hier errechne.

Ich habe ein Struct, in dem ein Datum gespeichert wird mit Stunde, Minute und Sekunde. von diesem Datum möchte ich jedoch ein ganz normales DateTime abziehen bzw. möchte ich den Unterschied in Stunden. Und ich komm nicht dahinter, wie ich das machen kann.

Ich hab zwar ne Idee, aber dann müsste ich ja alles einzeln von einander abziehen oder?

Mein struct sieht folgendermaßen aus:


public struct wpm_structtime
    {
        public int tm_sec;
        public int tm_min;
        public int tm_hour;
        public int tm_mday;
        public int tm_mon;
        public int tm_year;
        public int tm_wday;
        public int tm_yday;
        public int tm_isdst;
    }

kann mir jemand helfen?

04.03.2009 - 15:23 Uhr

Vielen Dank, jetzt funktionierts...

ich hab die beiden parameter verwechselt und das hier geschrieben


pattern = mSuchen.Replace(".*", "*");

und somit hat er mir alle markiert!!!

04.03.2009 - 14:57 Uhr

Der Benutzer gibt doch 00199* ein und daraus willst du einen entsprechenden Regex-Pattern machen also 00199.*

also ich komm grad komplett durcheinander...

die materialnummer schauen wie folgt aus: 00199289A1

der Benutzer gibt dann 00199* ein und dann soll auch nur die nummer gefunden werden, die mit 00199 beginnt und momentan markiert er mir alle...

04.03.2009 - 14:43 Uhr

Hallo hebivore,

ich hab das jetzt so gemacht


mSuchen.Replace("[0-9a-Z]", "*")

aber es funktioniert trotzdem nicht... seufz

04.03.2009 - 10:28 Uhr

Hallo Leute,

ich brauche mal euere Hilfe bei Regex um mit Wildcards zu suchen. Ich versteh das nciht so ganz...

Ich hab einen Array, in dem verschiedene Materialnummer, wie 00199289A1, gespeichert sind. Der Benutzer soll die Möglichkeit haben mit Wildcards zu suchen, wie z. B. 00199* oder bloß 0019*

Mein bisherigen Lösungsversuche:


pattern = "\\d" + pattern.Replace("*", ".*");

oder

pattern = @"[0-9]{5}\d*[A][0-9]";

Kann mir einer weiterhelfen? Oder mir sagen, was ich falsch mache?

19.02.2009 - 09:33 Uhr

Hä, das muß doch eine Variable vom Typ 'struct wpm_structtime' sein...

Ja, das stimmt, es gehört 'strcut wpm_structtime' rein...

jedoch lag der Fehler nun nicht an meinem Programm, sondern an den Funktionen bzw. Datenbank von der Firma.

Danke an alle, die versucht haben mir zu helfen!!!

17.02.2009 - 12:10 Uhr

Hallo,

habe ich auch schon ausprobiert, leider kommt immer noch die gleiche Fehlermeldung. Ich bin schon langsam am verzweifeln!

17.02.2009 - 09:45 Uhr

Hallo Leute,

ich importiere eine dll mit verschiedenen Funktionen, jedoch kommt immer der Fehler: PInvokeStackImbalance wurde erkannt... und ich weiß nicht mehr weiter. Kann mir einer helfen?

C-Funktion:


extern short __stdcall wpm_SetPartExtFieldDate(const char *szPartIdType, const char *szPartId, const char *szFieldName,
const wpm_STRUCTTIME DateTime, const char *szComment);

struct der C-Funktion:


typedef struct wpm_structtime {
    int tm_sec;		  // seconds (0-59)
    int tm_min;       // minutes (0-59)
    int tm_hour;      // hour    (0-23)
    int tm_mday;      // day of month (1-31)
    int tm_mon;       // month   (0-11; January=0)
    int tm_year;      // year    (current year - 1900)
    int tm_wday;      // day of week  (0-6; Sunday=0)
    int tm_yday;      // day of year  (0-365)
    int tm_isdst;     // daylight saving time
} wpm_STRUCTTIME;

C# import:


[DllImport("WipMama.dll")]
static public extern short wpm_GetPartExtFieldDate(string szPartIdType, string szPartId, string szFieldName, ref wpm_structtime dateTime, string szComment);

struct in C#:


[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
    public struct wpm_structtime
    {
        public int tm_sec;
        public int tm_min;
        public int tm_hour;
        public int tm_mday;
        public int tm_mon;
        public int tm_year;
        public int tm_wday;
        public int tm_yday;
        public int tm_isdst;
    }

Und so rufe ich die Funktion auf:


wpm_SetPartExtFieldDate(material, charge, remaining, zeit, laufz);

Die Variable zeit ist bei mir ein string object!

Kann mir einer sagen, was ich falsch mache?

17.12.2008 - 14:10 Uhr

Vielen Dank, jetzt funktionierts!!!!

17.12.2008 - 13:19 Uhr

verwendetes Datenbanksystem: <Oracle>

Hallo alle zusammen,

ich hab jetzt schon ziemlich viel programmiert, jedoch noch nie im Zusammenhang mit einer Oracle Datenbank und die macht mcih jetzt total wahnsinnig, weil ich die Daten nicht auslesen kann. Kann mir bitte einer helfen?

Momentan mach ich das so, aber so bekomm ich nur die Spaltennahmen!!!


OracleConnection myConnection = new OracleConnection();
                myConnection.ConnectionString = "Data Source=(DESCRIPTION=(CONNECT_DATA=(SID=*)(SERVICE_NAME=ki))(ADDRESS=(PROTOCOL=TCP)(HOST=ki)(PORT=1521)));User Id=DryPack2007;Password=20drypack07;";

                myConnection.Open();

                OracleCommand cmd = new OracleCommand
                  ("SELECT * FROM DryPackMaterialien", myConnection);
           
                OracleDataReader myReader = cmd.ExecuteReader();

                myReader.Read();

                DataTable dt = myReader.GetSchemaTable();

                //Generieren der Spaltennamen und der Datentypen
                //FlG_DBStructure.Cols.Count = 1;
                int i = 0;
                int zeilen = dt.Columns.Count;

			string test = "";
			foreach (DataRow dr in dt.Rows)
			{
				test += dr["ColumnOrdinal"] + " " +dr["IsKey"] + " " + dr["ColumnName"]
					+ " " + dr["DataType"]+" "+dr["AllowDBNull"]+" "+"\n";
                int j=0;

                MessageBox.Show(dr[j].ToString());
                j++;


			}
			MessageBox.Show(test);

Ich komm mit dieser Datenbank einfach nicht zurecht.

26.11.2008 - 09:25 Uhr

Eigentlich hat das mit dem Charset gar nix zu tun, denn der Pointer zeigt auf ein Array von strings (chars) und dieses Array will ich haben, jedoch liest er mir nur das erste zeichen...

Ich hab das aber auch schon mit Pointer probiert und das dann umgewandelt. Aber er zeigt mir dann immer nur einen Datensatz an... und ich weiß net warum

So hab ich das dann gemacht


aPosition[0] = Marshal.PtrToStringAnsi(pPosition);

Hier mal die funktion aus der DLL

extern short __stdcall car_GetCarPositions(const char *szCarIdType, const char *szCarrierId, char (**szPosition)[100], char (**szUnitIdType)[100], char (**szUnitId)[100]);

26.11.2008 - 09:13 Uhr

Wie meinst du das mit dem verwendent CharSet?

26.11.2008 - 08:13 Uhr

[EDIT=herbivore]Abgeteilt von DllImport und char*[EDIT]

Hallo,

ich habe so ein ähnliches problem. Ich habe eine Funktion, die mir eine array List zurückgibt aus einer dll.

Die Funktion:


[DllImport("Car.dll")]
static public extern short car_GetCarPositions(string szCarIdType, string szCarId,
                                                           [In, Out] string[] pPosition, [In, Out] String[] pUnitIdType, [In, Out] String[] pUnitId);

Der aufruf der Funktion funktioniert auch, jedoch zeigt er mir nur das erste element an, obwohl 2 vorhanden sind. Was muss ich denn machen, dass er mir alle anzeigt?

Ich hab es schon mit einer for-Schleife probiert, aber ich weiß nicht, was ich da erhöhen soll...

Hier der aufruf mit den String definitionen:


string[] aPosition = new string[100];
string[] aUnitIdType = new string[100];
string[] aUnitId = new string[100];

int iRetVal = 0;

iRetVal = NativeMethods.car_GetCarPositions("TS", "001", aPosition, aUnitIdType, aUnitId);

Kann mir jemand helfen?

24.11.2008 - 10:56 Uhr

VIELEN DANK... es funktioniert jetzt endlich...

24.11.2008 - 10:51 Uhr

Nein, es kommt eine andere Fehlermeldung:

LoaderLock wurde erkannt!

Eine verwaltete Ausführung wird innerhalb der Sperre für den OS-Loader versucht. Versuchen Sie nicht, verwalteten Code innerhalb einer DllMain- oder Bildinitialisierungsfunktion auszuführen, da dies ein Hängen der Anwendung zur Folge haben kann.

24.11.2008 - 10:46 Uhr

Es ist tatsächlich so, dass ich eine andere dll brauch um die andere Dll einzubinden, leider funktioniert das auch nicht...

24.11.2008 - 10:37 Uhr

Ja die dll befinden sich in beiden verzeichnissen!!!

24.11.2008 - 10:18 Uhr

Halli Hallo,

ich hab eine problem mit dem Dll einbinden, und bevor jemand was sagt, ich hab schon im forum gesucht. Hab auch die Lösungsansätze umgesetzt, aber es funktioniert immer noch nicht.

Ich binde meine DLL folgendermaßen ein:


using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
using System.Globalization;
using System.IO;
using System.Reflection;
using System.Windows.Forms;
using System.Xml;
using System.Collections.ObjectModel;
using System.Collections;

namespace Trockenschrankverwaltung
{
    internal static partial class NativeMethods
    {

        [DllImport("kernel32", CharSet = CharSet.Unicode, SetLastError = true)]
        internal static extern IntPtr LoadLibrary(string lpFileName);
        [DllImport("kernel32", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = false)]
        internal static extern IntPtr GetProcAddress(IntPtr hModule, string lpProcName); 

        [DllImport("Car.dll")]
        static public extern short car_GetErrorCode();

        [DllImport("Car.dll")]
        static public extern StringBuilder car_GetVersion();

        [DllImport("Car.dll")]
        static public extern StringBuilder car_GetCfg(string szKey, short boShowError);

        [DllImport("Car.dll")]
        public static extern short car_CreateCar(string szCarType, string szCarIdType, string szCarrId,
								   string szDescription);
     }
}

Der der Fehler kommt beim aufrufen einer Funktion aus der DLL:


            int iRetVal = NativeMethods.car_CreateCar("TS", "TS", textBox1.Text, "TS_001");

Fehler:

Die DLL Car.dll: Das angegebene Modul wurde nicht gefunden. (Ausnahme von HRESULT: 0x8007007E) kann nicht geladen werden.

31.10.2008 - 11:23 Uhr

Hallo,

vielen Dank für deine antwort. Die Variablen werden über eien funktion übergeben.

Wie geht das denn, dass ich eine Textbox so konfiguriere, dass sie mir dann den Wert als zahl speichert?

31.10.2008 - 10:48 Uhr

Halli Hallo,

ich habe ein Programm geschrieben, der mir alle daten mit einem bestimmten kriterium anzeigt. wenn ich jetzt aber einen Datensatz bearbeiten will, sagt mir mein programm einen Fehler, dass etwas in der Update anweisung nicht stimmt. ich habe auch schon rausgefunden, was nicht stimmt. Und zwar, ich lese die Daten von meiner Form als String aus, in Access sind die Zellen aber als Zahl benannt. Jetzt muss ich es als int konvertieren. Jedoch bringt er mir einen Fehler:

Der Wert für einen Int32 war zu groß oder zu klein.

Ich hab schon alles mögliche probiert:

  • Convert.ToInt32
  • Convert.ToInt64
  • Int.Parse((string)...)

ich weiß einfach nimmer weiter!!! was mach ich falsch???

hier mal mein code:


                int ma = int.Parse((string)material);
                int ch = int.Parse((string)charge);
                int sc = int.Parse((string)schrank);
                int eb = int.Parse((string)ebene);
                int fa = int.Parse((string)fach);

                OleDbCommand updateCommand = new OleDbCommand(
                    "UPDATE [DryPackVerwaltung] set ([Material], [Charge], [ImSchrank], [Schrank], [Ebene], [Fach]) values (@ma, @ch, @imSchrank, @sc, @eb, @fa) where ([Material]=@material)", acon);

                try
                {
                    OleDbParameter updateMaterial = new OleDbParameter();
                    OleDbParameter updateCharge = new OleDbParameter();
                    OleDbParameter updateImSchrank = new OleDbParameter();
                    OleDbParameter updateSchrank = new OleDbParameter();
                    OleDbParameter updateEbene = new OleDbParameter();
                    OleDbParameter updateFach = new OleDbParameter();

                    updateMaterial.ParameterName = "@ma";
                    updateCharge.ParameterName = "@ch";
                    updateImSchrank.ParameterName = "@imSchrank";
                    updateSchrank.ParameterName = "@sc";
                    updateEbene.ParameterName = "@eb";
                    updateFach.ParameterName = "@fa";

                    updateMaterial.Value = material;
                    updateCharge.Value = charge;
                    updateImSchrank.Value = imSchrank;
                    updateSchrank.Value = schrank;
                    updateEbene.Value = ebene;
                    updateFach.Value = fach;

                    updateCommand.Parameters.Add(updateMaterial);
                    updateCommand.Parameters.Add(updateCharge);
                    updateCommand.Parameters.Add(updateImSchrank);
                    updateCommand.Parameters.Add(updateSchrank);
                    updateCommand.Parameters.Add(updateEbene);
                    updateCommand.Parameters.Add(updateFach);

                    updateCommand.ExecuteNonQuery();
                }

                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
08.10.2008 - 13:04 Uhr

hier mal die komplette klasse:


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;
using System.Data.SqlClient;
using System.Xml.Serialization;
using System.Windows.Forms.Design;

namespace DryPack
{
    public partial class neues_material : Form
    {
        private static string nMaterial = "";
        private static string nCharge = "";

        public neues_material()
        {
            InitializeComponent();

            comboBox1.Items.Add("Stufe-2");
            comboBox1.Items.Add("Stufe-2a");
            comboBox1.Items.Add("Stufe-3");
            comboBox1.Items.Add("Stufe-4");
            comboBox1.Items.Add("Stufe-5");
            comboBox1.Items.Add("Stufe-5a");

            comboBox1.SelectedItem = "Stufe-5a";
        }

        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {

        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {

        }

        private void textBox2_TextChanged(object sender, EventArgs e)
        {

        }

        private void neues_material_Load(object sender, EventArgs e)
        {
            nMaterial = material_oeffnen.materialnummer.Substring(0, 10);
            nCharge =  material_oeffnen.materialnummer.Substring(10, 8);

            textBox1.Text = nMaterial;
            textBox2.Text = nCharge;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            material_oeffnen matOe = new material_oeffnen();
            matOe.anyFunction(true);
        }

        public void new_material(bool isTrue, material_oeffnen refMaterial_oeffnen)
        {
            int zahl = comboBox1.Items.Count;
            try
            {
                if(comboBox1.SelectedItem != null)
                {

                    if (comboBox1.SelectedItem.ToString() == "Stufe-2")
                    {
                        string zeit = "8760";
                        refMaterial_oeffnen.DryPackDetails_holen(1, nMaterial, nCharge, "False", zeit, "0", "0", "0");
                        
                        material_oeffnen newform = new material_oeffnen();
                        newform.Show();
                        this.Hide();
                    }

                    else if (comboBox1.SelectedItem.ToString() == "Stufe-2a")
                    {
                        string zeit = "672";
                        refMaterial_oeffnen.DryPackDetails_holen(1, textBox1.Text, textBox2.Text, "False", zeit, "0", "0", "0");
                    }

                    else if (comboBox1.SelectedItem.ToString() == "Stufe-3")
                    {
                        string zeit = "168";
                        refMaterial_oeffnen.DryPackDetails_holen(1, textBox1.Text, textBox2.Text, "False", zeit, "0", "0", "0");
                    }

                    else if (comboBox1.SelectedItem.ToString() == "Stufe-4")
                    {
                        string zeit = "72";
                        refMaterial_oeffnen.DryPackDetails_holen(1, textBox1.Text, textBox2.Text, "False", zeit, "0", "0", "0");
                    }

                    else if (comboBox1.SelectedItem.ToString() == "Stufe-5")
                    {
                        string zeit = "48";
                        refMaterial_oeffnen.DryPackDetails_holen(1, textBox1.Text, textBox2.Text, "False", zeit, "0", "0", "0");
                    }

                    else if (comboBox1.SelectedItem.ToString() == "Stufe-5a")
                    {
                        string zeit = "24";
                        refMaterial_oeffnen.DryPackDetails_holen(1, nMaterial, nCharge, "False", zeit, "0", "0", "0");

                        anzeige_datenbank newform = new anzeige_datenbank();
                        newform.Show();
                        this.Hide();
                    }
                }

                else
                {
                    MessageBox.Show("Es wurde keine Offenzeit ausgewählt", Application.ProductName, MessageBoxButtons.OK);
                }
            }


            catch (System.InvalidOperationException e)
            {
                MessageBox.Show(e.Message);
            }
        }
    }
}

ich will ja die ganze if-else anweisungen hier alle in einen swich reinmachen, aber ich hab gleich eine besprechung und kann das nun auf die schnell nicht ändern!

08.10.2008 - 12:03 Uhr

vielen dank für deine antwort, aber das funktioniert auch nicht.

er nimmt mir jetzt immer das erste objekt, also Stufe-2

08.10.2008 - 11:43 Uhr

ja genau, hab ich auch schon probiert, und es passiert wieder das selbe!

hab es jetzt auch schon mit SelectedValue probiert... aber nix, auch wieder das selbe!

08.10.2008 - 11:28 Uhr

ich habe jetzt hingeschrieben:


combobox1.SelectedItem = "Stufe-5a";

Somit zeigt die comoBox immer zuerst diese stufe an, sobald ich aber eine neue auswähle ist das SelectedItem immer null und er springt mir nicht rein!

diese schleife beantwortet er mir immer mit false und sagt mir, dass nichts augewählt wurde.


if(combobox1.SelectedItem != null)

08.10.2008 - 10:50 Uhr

Hallo Leute,

bevor ich anfang mein Problem zu schildern, möchte ich gleichvorweg nehmen, dass ich schon in dem Forum alle Beitäge gelesen habe, wo dieser Fehler vorkommt, jedoch nix gefunden. ich hab auch das Theme von hebivore gelesen für die NullExceptions, aber ich versteh trotzdem nicht, warum er mir den fehler bringt.

Folgendes ist mein Problem:
ich habe eine ComboBox und fülle diese mit Items, und in einer Funktion überprüfe ich, welches ausgewählt wurde, der fehler kommt bei folgender zeile:


if (comboBox1.SelectedItem.ToString() != null)

und ich versteh nicht warum. ich überprüfe ja, ob es nicht null ist...

könnt ihr mir helfen?

befüllung der ComboBox:


            comboBox1.Items.Add("Stufe-2");
            comboBox1.Items.Add("Stufe-2a");
            comboBox1.Items.Add("Stufe-3");
            comboBox1.Items.Add("Stufe-4");
            comboBox1.Items.Add("Stufe-5");
            comboBox1.Items.Add("Stufe-5a");

funktion:


        public void new_material(bool isTrue, material_oeffnen refMaterial_oeffnen)
        {
            try
            {
                if (comboBox1.SelectedItem.ToString() != null)
                {

                    if (comboBox1.SelectedItem.ToString() == "Stufe-2")
                    {
                        string zeit = "87602";
                        refMaterial_oeffnen.DryPackDetails_holen(1, textBox1.Text, textBox2.Text, "False", zeit, "0", "0", "0");
                    }

                    else if (comboBox1.SelectedItem.ToString() == "Stufe-2a")
                    {
                        string zeit = "672";
                        refMaterial_oeffnen.DryPackDetails_holen(1, textBox1.Text, textBox2.Text, "False", zeit, "0", "0", "0");
                    }

                    else if (comboBox1.SelectedItem.ToString() == "Stufe-3")
                    {
                        string zeit = "168";
                        refMaterial_oeffnen.DryPackDetails_holen(1, textBox1.Text, textBox2.Text, "False", zeit, "0", "0", "0");
                    }

                    else if (comboBox1.SelectedItem.ToString() == "Stufe-4")
                    {
                        string zeit = "72";
                        refMaterial_oeffnen.DryPackDetails_holen(1, textBox1.Text, textBox2.Text, "False", zeit, "0", "0", "0");
                    }

                    else if (comboBox1.SelectedItem.ToString() == "Stufe-5")
                    {
                        string zeit = "48";
                        refMaterial_oeffnen.DryPackDetails_holen(1, textBox1.Text, textBox2.Text, "False", zeit, "0", "0", "0");
                    }

                    else if (comboBox1.SelectedItem.ToString() == "Stufe-5a")
                    {
                        string zeit = "24";
                        refMaterial_oeffnen.DryPackDetails_holen(1, textBox1.Text, textBox2.Text, "False", zeit, "0", "0", "0");
                    }

                    material_oeffnen newform = new material_oeffnen();
                    newform.Show();
                    this.Hide();
                }

                else
                {
                    MessageBox.Show("Es wurde keine Offenzeit ausgewählt", Application.ProductName, MessageBoxButtons.OK);
                }
            }


            catch (System.InvalidOperationException e)
            {
                MessageBox.Show(e.Message);
            }
        }

01.10.2008 - 14:38 Uhr

Hallo loewchen...

ich hab das jetzt so probiert, wie du das geschrieben hast, leider befüllt er meine tabelle trotzdem net...

ich verzweifle schon...

01.10.2008 - 12:29 Uhr

Hallo,

jetzt hab ich mein Problem gelöst, jedoch bleibt die tabelle leer... es werden zwar im dataGridView soviele zeilen eingefügt, wie da stehen müssten, jedoch passiert da nix...


try
            {
                OleDbConnection acon = new OleDbConnection();
                acon.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\DryPack.mdb;Mode=ReadWrite;Persist Security Info=False";

                string commandstring = "SELECT * FROM DryPackVerwaltung";
                OleDbDataAdapter daadapter2 = new OleDbDataAdapter(commandstring, acon);
                DataSet ds = new DataSet();
                daadapter2.Fill(ds);
                dataGridView1.DataSource = ds.Tables[0];
            }

            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

01.10.2008 - 12:01 Uhr

Hallo Leute,

ich hab immer noch das selbe Problem, undzwar lässt mich Access nicht auf die Datenbank zugreifen. Es kommt immer wieder die gleiche Fehlermeldung:

Datensätze können nicht gelesen werden. Keine Leseberechtigung auf "DryPackVerwaltung".

An was könnte das liegen?

26.09.2008 - 14:08 Uhr

wenn ich mein programm starte mit dem code, den ich oben hinzugefügt habe, dann schaut das genauso aus, wie auf dem bild...

jetzt will ich aber nicht, dass alle ziffern untereinander stehen, sondern dass er mir einmal einen Zeilenumbruch macht und dann wieder hochzählt, bei welcher zeile die dll gerade ist...

versteht ihr?

26.09.2008 - 13:41 Uhr

Hallo leute...

ich habe folgende For-Schleife:


for (int q = 0; q < Convert.ToInt16(oberflaeche.txtFilesRows[i]); q++)
                                {
                                    dllImport.LoadProcessEntry(oberflaeche.DLLpath, artikelnummer_einzeln[q, 0],
                                                               artikelnummer_einzeln[q, 1], artikelnummer_einzeln[q, 2],
                                                               artikelnummer_einzeln[q, 3]);

                                    //show LogEntry
                                    dllImport.LoadLogEntry(oberflaeche.DLLpath);
                                    refOberflaeche.FuncForTB8(dllImport.logEntry);

                                    //entry ok or not
                                    if (dllImport.process == "1")
                                    {
                                        g++;
                                        refOberflaeche.FuncForTB67(g, h);
                                    }
                                    else
                                    {
                                        h++;
                                        refOberflaeche.FuncForTB67(g, h);
                                    }

                                }

und jedes mal, wenn die variable "dllImport.process" 1 ist, zählt er die Variable g hoch und schreibt dir mir auf die oberfläche...

jedoch wenn ich mehrere files habe (was immer der fall ist), überschreibt er mir diesen wert, mit dem wert des nächsten files...

die funktion, mit der ich auf die oberfläche schreib schaut so aus:


public void FuncForTB67(int ok, int nok)
        {
            if (analyseFiles.pruefnummer == 0)
            {
                textBox6.Text = ok;
                textBox7.Text = nok;
                this.Refresh();
            }

            else
            {
                textBox6.Text += "\r\n" + ok;
                textBox7.Text += "\r\n" + nok;
                this.Refresh();
            }
        }

das funktioniert aber nur beim ersten file, dann springt er mir in die nächste zeile bei der text box. beim nächsten file schreibt er mir alle zahlen nach ein andern untereinander.

ich hab schon alles mögliche ausprobiert. Aber wie mach es das, dass er mir nach jedem file ein einziges mal eine zeilenumbruch macht?

Habs auch schon mit einer anderen funktion gemacht... aber sobald ich das "+=" einsetzte, schreibt er mir alle zahlen hintereinander...

mir ist die zündende idee noch nicht gekommen... kann mir jemand helfen?

17.09.2008 - 13:09 Uhr

Klasse DANKESCHÖN...

es funktioniert!!!

17.09.2008 - 12:06 Uhr

Hallo Leute,

ich soll für mein programm nun eine config datei einlesen die dann von außen immer verändert werden kann... hab das gemacht, hab eine app.config datei erstellt, aber irgendwie funktioniert es nicht... ich glaub ich überseh was..

so sieht meine app.config datei aus:


<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <applicationSettings>
        <BSW4MES.Properties.Settings>
            <setting name="savePfad" serializeAs="String">
                <value>S:\Temic-Projekte\PlugIns</value>
            </setting>
        </BSW4MES.Properties.Settings>
    </applicationSettings>
</configuration>

die config datei versuch ich so auszulesen...


//Settings-Instanz erzeugen
BSW4MES.Properties.Settings appSet = newBSW4MES.Properties.Settings();

this.savePfad = appSet.savePfad;

mein problem ist jedoch, dass er dies gar nicht erkennt und mir bei der letzten zeile einen fehler ausgibt...

wenn ich das jedoch anders machen will wie z. B.:


string savePfad = ConfigurationManager.applicationSettings["savePfad"];

erkennt er mir "ConfigurationManager" gar nicht... den gibts nicht... ich hab jedoch


using System.Configuration;

hinzugefügt...

kann mir jemand helfen? überseh ich etwas?

02.09.2008 - 08:22 Uhr

versuch mal "User Id= Admin".

Das habe ich davor schon gemacht und dann sagt er mir, ich habe keinen Zugriff darauf!!! Deswegen hab ich auch meine User Id genommen, denn unter dieser bin ich auch bei Windows angemeldet!

so langsam verzweifel ich jetzt an dem zeug

02.09.2008 - 07:23 Uhr

Hab das jetzt gelöst


string strAccessConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=S:\\Temic-Projekte\\DryPack\\DryPack.mdb;User ID=FellnerB";

jedoch sagt er mir diesmal ein anderes Problem:

Die Anwendung kann nicht gestartet werden. Die Informationsdatei für die Arbeitsgruppe fehlt oder ist exklusiv von einem anderen Benutzer geöffnet.

was bedeutet das???

02.09.2008 - 06:16 Uhr

ich denk mal schon...

wie kann ich das denn ändern?

01.09.2008 - 11:10 Uhr

Hallo Leute,

ich habe ein Problem...

ich versuch aus meiner Datenbank DryPack.mdb (Access 2003 Datenbank) zu lesen und in meine DataGridView zu füllen nur leider gibt er mir den fehler aus "Datensätze konnten nicht gelesen werden. Keine Leseberechtigung auf "DryPackVerwaltung".
DryPackVerwaltung ist meine Tabelle, die ich aus lesen möchte.

Vielleich kann mir ja mal jemand weiterhelfen....

Hier mal mein code:


private void dryPackDeteils_holen()
        {
            string strAccessConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=S:\\Temic-Projekte\\DryPack\\DryPack.mdb";

            string strAccessSelect = "SELECT * FROM DryPackVerwaltung";

            DataSet myDryPack = new DataSet();
            OleDbConnection myAccessConn = null;

            try
            {
                myAccessConn = new OleDbConnection(strAccessConn);
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error: Failed to create a database connection. \n{0}", ex.Message);
                return;
            }

            try
            {

                OleDbCommand myAccessCommand = new OleDbCommand(strAccessSelect, myAccessConn);
                OleDbDataAdapter myDataAdapter = new OleDbDataAdapter(myAccessCommand);

                myAccessConn.Open();
                myDataAdapter.Fill(myDryPack, "DryPackVerwaltung");
                dataGridView1.DataSource = myDryPack.Tables[0];
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error: Failed to retrieve the required data from the DataBase.\n{0}", ex.Message);
                return;
            }

        }

28.08.2008 - 14:38 Uhr

Ich habe jetzt mein problem gelöst.... stand aber ganz schön aufn Schlauch....

der scanner sendet auf alle Fälle ein \n am schluss. Ich hab das jetzt mit KeyDown gelöst!!!

ich schreib mal meien Lösung hin, vielleicht hilft es ja noch welchen...


//erstmal EventHandler erstellen
this.textBox1.KeyDown += new System.Windows.Forms.KeyEventHandler(this.textBox1_KeyDown);


//und hier dann die Verarbeitung bzw. abfrage
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
            if (e.KeyCode == Keys.Enter)
            {
                auswahl_scan();
            }
}

28.08.2008 - 12:43 Uhr

so, das hier ist mein code...


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace DryPack
{
    public partial class auswahl : Form
    {
        public auswahl()
        {
            InitializeComponent();

            textBox1.TabIndex = 0;
            textBox1.Focus();

            if (textBox1.Text == "\n")
            {
                auswahl_scan();
            }
        }

        private void auswahl_scan()
        {
            if (textBox1.Text == "010204")
            {
                oberflaeche newform = new oberflaeche();
                newform.Show();
                this.Hide();
            }

            else
            {
                MessageBox.Show("incorrect barcode");
                textBox1.Text = "";
                textBox1.TabIndex = 0;
                textBox1.Focus();
            }
        }

        private void auswahl_Load(object sender, EventArgs e)
        {
        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (textBox1.Text != "")
            {
                auswahl_scan();
            }
        }
    }
}

mein problem ist wahrscheinlich, dass ich zum barcodescanner kein programm hab... ich schließ den per USB an und der funktioniert dann automatisch und scannt mir die barcodes. Die Nummern schreibt er dort hin, wo gerade der coursor blinkt!

28.08.2008 - 11:47 Uhr

so... ich hab das jetzt genauso gemacht, wie ihr ir das gesagt habt, jedoch wird das enter nicht automatisch durchgeführt... bzw. er prüft die nummer, die in der Textbox erscheint nicht automatisch...

erst wenn ich auf den Button klicke ruft er die Methode auf!