Laden...

Forenbeiträge von ludden Ingesamt 55 Beiträge

09.07.2012 - 21:15 Uhr

Die erste Frage ist doch eher :
Warum gehst du diesen umständlichen und fehleranfälligen Weg statt den Filter eines DataViews zu benutzen?

Gefaehrliches halbwissen? Beim googeln bin ich auf diese Moeglichkeit garnicht gestossen.

Funktioniert jetzt ...
Vielen Dank!

@Coffeebean , trotzdem danke fuer deine Hilfe, wuesste jetzt trotzdem mal gerne an was es genau gelegen hat, aber ist auch nicht mehr so wichtig 😃

Kann geschlossen werden!

09.07.2012 - 20:35 Uhr

Ich versuch mal etwas laenger auszuholen, wahrscheinlich steckt der Teufel doch mehr im Detail.

Also meine Tabelle "tab" wird mit einer Datenbank abfrage befuellt.
Sie enthaelt alle Daten dich ich fortan weiterverarbeiten moechte.

Binde ich "Tab" an mein GridView wird alles ordnungsgemaess dargestellt.

Nun moechte ich aber zunaechst einmal nicht die ganze Tabelle "tab" anzeigen lassen sondern nur einen Teil.
Also hab ich mich schlau gemacht und bin auf DataTable.SELECT gestossen , was ja genau meinem Beduerfnis entspricht(sollte).

Also hab ich mir die entsprechenden DataRows mit Select geholt diese, dann einer neuen Tabelle importiert ( "myTab" )und an ein GridView gebunden. Aber das GridView bleibt leer.

Dann hab ich immer weiter vereinfacht bis ich bei dem geposteten CODE Snippet war.

Also das DataRow - Object ist nicht leer , es stehen die richtigen Werte drinn.
Das Boolsche Flag ist nicht markiert.

Was ich zuerst dachte, ist dass ich nach oder vor dem Import noch irgendwas mit der neuen DataTable zu machen haben sowas wie ein Update oder irgendwie das Schema von "tab" uebertragen.

Das waere jetzt erstmal was mir so einfaellt , jetzt eine Idee?

09.07.2012 - 19:59 Uhr

Hallo ludden,

Hast du GridView1 "AutoGenerateColumns" auf "True"?

Coffeebean

Ja, tab wird ohne Probleme im GridView dargestellt

Hast du mal probiert "MyDataRow" als DataSource zu setzen?

Ja war eigentlich meine Erste Idee allerdigns kommt dann eine etwas komische Tabelle , unter HasError ist eine Checkbox, welche ich nicht anklicken kann.


RowError	HasErrors

Gruss

09.07.2012 - 19:33 Uhr

Hallo,

am besten einfach kurz das Codesnippet anschauen, sollte selbstklaerend sein 😃
Hab jetzt gut 1 Stunde versucht das Problem zu googlen und hab nichts brauchbares gefunden.


            //tab kommt von einer db-abfrage  , enthaelt daten!
            DataRow[] myDataRow = tab.Select();
            //myDataRow ist auch nicht leer ...
            DataTable myTab = new DataTable();
            foreach(DataRow row in myDataRow)
            {
                myTab.ImportRow(row);
            }
            //myTab scheint leer zu sein, zumindest bekomme ich nichts im Gridview angezeigt
            GridView1.DataSource = myTab;

            GridView1.DataBind();
    
            myConnection.Close();

Irgendjmd eine Idee wodrann es liegen koennte ?

02.07.2012 - 15:43 Uhr

Niemand?

28.06.2012 - 18:42 Uhr

Hallo,

Nach der Abfrage aus meiner Datenbank hab ich eine Reihe die wie folgt aussieht:

UNIT | RUNTIME | DOWNTIME | INDIRECT DOWNTIME
OP240 | 180min | 25min | 3min

Jetzt wuerde ich gern ein Piechart erstellen, mit RUNTIME , DOWNTIME und INDIRECT DOWNTIME.

Ist das moeglich ohne viel im Codebehind rumzufummeln?

Hab irgendwie das Gefuehl, dass das Piechart Control immer eine Column als eingabe erwartet und dort braucht man dann mehrere Werte.

Gruss

26.06.2012 - 17:02 Uhr

Session States haben leider keine Abhilfe geschaffen.
Das Problem bleibt das gleiche.

Dass ich mich jetzt in den Page-Lifecycle so tief einlese, dass ich da eingreifen kann sprengt leider meinen Zeitrahmen.

Deshalb bin ich auf der Suche nach alternativen.

Im Prinzip muesste ich nur immer auf die aktuellen Werte in meinem Menu-Usercontrol verweisen? Diese sind ja nach dem ersten PostBack aktualisiert.
Muesste ich halt nur das Usercontrol immer auf der jeweiligen Seite einbinden.

//EDIT

Bin jetzt gerade mit UserControls und Events am experimentieren.
Jetzt feuer ich ein Event, wenn der Load_Button gedrueckt wird.

D.h. wenn ich ein Usercontrol fuer das Menue direkt auf jeder Seite einbinde wuerde ich klar kommen, allerdings moechte ich das wenn es irgendwie geht vermeiden, lieber waers mir wenn ich das Event aus der Masterpage abfeuern koennte. Und nicht jeweils immer aus der Content page

26.06.2012 - 15:37 Uhr

Hallo allerseits,

Der Titel ist vermutlich etwas zu einfach. Ich versuche mal zu beschreiben was ich mache und was ich gerne haben moechte.

Zuerst einmal vorweg, ich bewege mich noch in Webforms und nicht in MVC 😉

Nun zu meinem Problem:

Ich habe ein kleines Menu welches 2 Kalendar , ein paar Dropdowns und einen Load-Button enthaelt, welches ich auf jeder Seite brauche (10-20 Seiten)

Soll:
Der User waehlt seinen Timespan und seine Zusatzoptionen aus, klick auf Load.
Jenachdem welche Sachen ausgewaehlt sind wird meine parametriesierte Datenbankabfrage angesteuert.
Das ganze sollte im Idealfall in einem Cookie gespeichert werden, sodass der User, wenn er die Seite wechselt und sich etwas anderes anschaut nicht wieder alles von vorne machen muss.(Viewstate ist immer nur fuer eine Site richtig?)

Ist:
Da ich dieses Menu auf jeder Seite brauche, hab ich es in die Masterseite eingebaut.
Wenn der Load_Button geklickt wird , wird ein Label im Menue aktualsiert um die aktuelle auswahl anzuzeigen.
In meinem Webform hole ich mir die ausgewaehlten Daten ueber eine Get-Methode von der Masterseite und speicher sie in Hiddenfields.
Diese Hiddenfields nutze ich dann als Input-Parameter fuer meine Datenbankabfrage.

Das Problem ist nun , dass die Hiddenfields erst nach 2x Load klicken aktualisiert werden. Zuerst die Labels im Menue und dann beim 2. klicken Anscheinend die Hiddenfields.

Egal wie ich mich drehe und wende, ob das Menu jetzt ein Usercontrol ist , oder ich beim Pageload der Masterseite Cookie schreibe, btw beim Button_Click Cookies schreiben. Ich muss immer 2x klicken.

Vlt kann mir jmd mal so grob erklaeren, wie man an so etwas richtig rangeht, btw was vlt eine richtige Methode waere

Vielen Dank im vorraus!

Gruss

Ludden

07.05.2012 - 10:35 Uhr

Danke 😃
Dass wars und im DataField stand auch noch nichts, es funktioniert jetzt. Kann als erledigt markiert werden.

07.05.2012 - 09:23 Uhr

Hallo,
Zunächst mal eine kurze Beschreibung was ich mache zu meinem Problem komme ich später, ich kann es nämlich nicht ohne Beispiel einfach erklären:

Ich habe ein Gridview und eine DataTable.
Die DataTable erzeuge ich "händisch".
Ich stelle das mal kurz Schematisch dar, damit wir den gleichen Nenner habe.


DataTable table = new DataTable("");
DataColumn table_column;

table_column = table.Columns.Add("Spalte1");
table_column = table.Columns.Add("Spalte2");
table_column = table.Columns.Add("Spalte3");
table_column = table.Columns.Add("Spalte4");

for(int i=0;i<10<i++)
{
  row["Spalte1"] = i;
  row["Spalte2"] = i;
  row["Spalte3"] = i;
  row["Spalte4"] = i;
  table.Rows.Add(row);
}

Nachdem meine Table dann mit Daten gefüllt ist, binde ich sie an mein GridView


            GridView1.ShowHeader = true;   
            GridView1.DataSource = table;
            GridView1.DataBind();

Soweit funktioniert auch alles.
Nun möchte aber zB, dass in Spalte4 ein Bild reinkommt.
Deshalb bin ich hingegangen , hab für Spalte 1-3 im GridView jeweils ein BoundField hinzugefügt , für Spalte4 ein ImgField.
Allerdings sieht es nun so aus, dass Spalte1-4 erstmal leer sind und dann kommt nochmal Spalte 1-4 aus dem DataTable.
Ich habe im Anhang mal ein Bild von der echten Table, die das Problem verdeutlicht.
Dabei sind die Spalten im DataGrid äquivalent zu denen in der DataTable.
Wie kann ich nun die richtigen Stellen füllen? Desweiteren würde ich gerne in der Spalte Status die Farbe je nach Status anpassen, dies könnte ich ja über ein Template field machen, welchem ich eine Funktion übergebe.

Jmd eine Idee?

26.08.2011 - 15:25 Uhr

Hallo,
also die Anwendung läuft unter einem echtem IIS. Ja auf soetwas wie ein Timeout tippe ich auch. Aber ich habe keine Ahnung wonach ich suchen soll.

26.08.2011 - 12:43 Uhr

Also Firefox scheint mir hier keine Probleme zu machen, aber da ich an den Internet Explorer gebunden bin, da wir ActiveX Komponenten benutzen müssen ist das auch keine alternative.

Nur um das nochmal klar zustellen.
Ich habe das <asp:chart> Objekt benutzt. Die Bilder werden ja erst beim Pageload gerendert und ich denke hier liegt irgendwo das Problem.
Desweiteren wüsste ich jetzt nicht wie ich 4 Chart "Bilder" zu einem großen zusammenfüger soll.

mfg ludden

26.08.2011 - 12:11 Uhr

Auch das ist eine mögliche Lösung, aber idR wird dann ein anderes Bild falsch angezeigt, sodass ich im extremfall 4x neu laden muss.

Da ist für meinen Chef leider nicht aktzeptabel 😃
Zumal die Website auch zu Präsentationszwecken genutzt werden soll. Es muss beim ersten Pageload alles dasein.

26.08.2011 - 11:34 Uhr

Hallo,
ich fülle die Charts wie folgt mit Daten:


       protected void Page_Load(object sender, EventArgs e)
        {
            Chart1.Series.Add(getSeries(getDataTableFomCSV("LM_oee.csv"), "Last month OEE"));
            Chart2.Series.Add(getSeries(getDataTableFomCSV("YTD_oee.csv"), "Last year OEE"));
            Chart3.Series.Add(getSeries(getDataTableFomCSV("LM_total.csv"), "Last month total pieces"));
            Chart4.Series.Add(getSeries(getDataTableFomCSV("YTD_total.csv"), "Last year total pieces"));

   
        }
        protected DataTable getDataTableFomCSV(String filename)
        {
            String[] myCSV = File.ReadAllLines("C://nShare//mes_portal//" + filename);
            DataTable myTab = new DataTable();

            myTab.Columns.Add("Datum");
            myTab.Columns.Add(myCSV[0].Split(new Char[] { ';' })[1]);
            for (int i = 1; i < myCSV.Length; i++)
            {
                DataRow myRow = myTab.NewRow();
                String[] myVal;
                myVal = myCSV[i].Split(new Char[] { ';' });
                myRow["Datum"] = myVal[0];
                myRow[1] = myVal[1];
                myTab.Rows.Add(myRow);
            }
            return myTab;

        }
        protected Series getSeries(DataTable myTab, String name)
        {

            Series mySeries = new Series(name);
            for (int i = 0; i < myTab.Rows.Count; i++)
            {
                mySeries.Points.AddXY(myTab.Rows[i][0], myTab.Rows[i][1]);
            }
            return mySeries;
        }


Das funktioniert auch. Zeigt ein Bild einen Fehler(was rein zufällig ist und jedes Bild treffen kan) kann ich es mir ,mit "Rechtsklick+Bild anzeigen" , anzeigen lassen.
Kann mir da jmd vlt weiterhelfen?

gruß ludden

08.08.2011 - 15:02 Uhr

Umstellung bringt leider nichts.

Ich nutze IIS6.0 und WindowsServer2003 R2.
Bin jetzt am überlegen, ob ich nicht am besten selbste eine Klasse schreibe die über einen IO Stream die csv einfach einliest und dann Zeilenweise verarbeitet. Das Format ist immer gleich ... Datum ; Wert .
Wäre wohl die einfachste Variante oder?

08.08.2011 - 14:38 Uhr

Hm, dass ist alles problematisch.Habe weder IIS7.0 noch die möglichkeit etwas zu installieren, da ich am Server so einfach nichts ändern kann/darf.

08.08.2011 - 14:13 Uhr
            
          DataTable myDS = GetDataTable("C:\\nShare\\mes_portal\\YTD_oee.csv");
            GridView1.DataSource = myDS;
            GridView1.DataBind();
            Label1.Text = myDS.Rows.Count.ToString();

Hm , kann es vielleicht daran liegen , dass ich 64bit habe? Hab sowas auf connectionstrings.com gelesen.

08.08.2011 - 13:58 Uhr

Hallo,

hast Du mal überprüft, was für Daten tatsächlich nach dem Fill in der DataTable stecken? Anzahl Rows/Cols wäre schon mal ein Hinweis.

myDS.Rows.Count.ToString(); 

liefert mir 6 und das stimmt auch, also gelesen wird schonmal auf jedenfall.

Du könntest mal versuchen, den Delimiter im Connectionstring mit anzugeben, obwohl ich dem Bild nach nicht glaube, dass das die Ursache ist:

FMT=Delimited(;)  

Wie sieht denn die Definition der GridView im Markup aus?

Gruß, MarsStein

Hab ich leider auch schon versucht , verändert das ergebnis leider nicht.

<asp:GridView ID="GridView1" runat="server">
    </asp:GridView>
08.08.2011 - 13:01 Uhr

Hallo, ich habe folgendes Problem:
Ich hab eine CSV die sieht so aus


ctByMonths;OEE
4/7/2011 8:00:00 PM;44.0
5/7/2011 8:00:00 PM;32.8
6/6/2011 8:00:00 PM;44.2
7/6/2011 8:00:00 PM;43.7
8/5/2011 8:00:00 PM;4.3

Das Trennzeichen ist ein ";" , ich lese sie aus und möchte sie an ein GridView binden. Dazu benutze ich folgende Funktion.


        public System.Data.DataTable GetDataTable(string strFileName)
        {
            System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OleDb.4.0; Data Source = " + System.IO.Path.GetDirectoryName(strFileName) + "; Extended Properties = \"Text;HDR=YES;FMT=Delimited\"");
            conn.Open();
            string strQuery = "SELECT * FROM [" + System.IO.Path.GetFileName(strFileName) + "]";
            System.Data.OleDb.OleDbDataAdapter adapter = new System.Data.OleDb.OleDbDataAdapter(strQuery, conn);
            System.Data.DataSet ds = new System.Data.DataSet("CSV File");
            adapter.Fill(ds);
            return ds.Tables[0];
        }

Funktioniert auch, allerdings sieht mein Gridview immer so aus: (siehe Anhang)

Jetzt weiß ich eigentlich gerade nicht genau, wonach ich suchen muss. Jmd eine Idee?

17.06.2011 - 17:09 Uhr

Könnte es auch helfen die Website auf dem Server nochmal neu zu erstellen?

17.06.2011 - 16:26 Uhr

Ok, korrupte Installion schlíeß ich mal aus, da wie gesagt andere Projekte fehlerfrei auf 2.0 laufen.

Also was kann man da mit den Berechtigungen machen, ich bin nicht so fit mit den Windowsbenutzerrechten?

17.06.2011 - 16:14 Uhr

Ja ist installiert, eine andere Website läuft schon auf 2.0.
BTW: das System läuft auf IIS6.0

17.06.2011 - 16:10 Uhr

Hallo,
ich hab eine Website auf meinem eignen Rechner entwickelt und compiliert und dann veröffentlicht. Das ganze läuft auf asp.net 2.0 .

Nun hab ich die Veröffentlichten Dateien genommen und auf den Server kopiert dort ein Virtuelles Verzeichnis angelegt alles eingestellt und nun bekomm ich eine Fehlermeldung:> Fehlermeldung:

Exception: System.IO.FileLoadException

Message: Could not load file or assembly 'System.Web, Version=2.0.0.0, Culture=neutral,

PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. Access is denied.

Jmd eine Idee was das sein könnte? Beim googeln bin ich nur auf Umstellung von 1.1 auf 2.0 gestoßen, aber nicht auf meinen Fall

gruß ludden

15.06.2011 - 16:42 Uhr

Ich habs ! Der Server ändert die ID Namen von zB OEECli_runtime1 auf sowas ct100_ContentPlaceHOlder1_OEECli_Runtime1 . Bin gerade drauf gestoßen als ich einen Panel hiden wollte und mir dann aufgefallen ist, dass dort die ID auch geändert ist nach dem erstellen.

Kann man das irgendwie verhindern? Kann leider nicht den aktuellen Namen mit this übergeben, weil ich keinen Einfluss auf die Objecte hab.

15.06.2011 - 15:14 Uhr

Ok, ich habe jetzt festgestellt, dass es allg. irgendwie bei mir ein Problem zugeben scheint wenn ich Clientseitig in einer Contentpage auf Elemente zugreifen möchte.

Woran könnte das liegen?

14.06.2011 - 16:21 Uhr

Ich muss eine Industriesoftware benutzen welche mir die Objecte über eine Libary bereitstellt. Sie benutzen einen abstrusen Mix aus vbscript,javascript ActiveX . Hab versucht es möglichst allgemein zu halten, da ich keinen Code posten darf.

Ich versuchs mal so:


<form id="form1" runat="server">
<CABOEE:OEECli_Runtime ID="OEECli_RUntime1" runat="server" >
<-some code here->
</CABOEE:OEECli_Runtime>
</form>

funktioniert super !


<asp:content id="content1" ContentPLaceHolderID="CPH_ID1" runat="server">
<CABOEE:OEECli_Runtime ID="OEECli_RUntime1" runat="server" >
<-some code here->
</CABOEE:OEECli_Runtime>
</asp:content>

Funktioniert nicht 😦

Hilft das weiter um mir zu helfen?

14.06.2011 - 16:11 Uhr

Hallo,
ich habe folgendes Problem.
Wenn ich ein Object in einem normalen Webform benutze funktionierts.
Ich ziehe das Object einfach von der Toolbox ins Fenster. Verweise sind alle hinzugefügt es handelt sich hierbei nicht um standart Object.

Wenn ich es jetzt in eine Content Page ziehe, erkennt er das Object nicht bringt immer einen Fehler: Object required: 'Object_name'.
Dabei arbeitet das Object mit javascript/vbscript, kann es sein dass es daran liegt? Weil der Code im asp:content Bereich ja Serverseitig ausgeführt wird?

gruß ludden

26.05.2011 - 14:58 Uhr

Ich wollte schon Client Seitig etwas tun. Hab den Fehler gefunden, es war eine Sicherheitseinstellung 😉 Trotzdem danke für die Info.

mfg ludden

25.05.2011 - 10:03 Uhr

War es leider doch nicht. Nach einigen rumprobieren musste ich feststellen, dass alles im <script ...> </script> nicht ausgeführt wird.


<asp:Content>
<script language="vbscript">
[...]
Sub LoadData_OnClick()
[...]
</script>
<asp:Button onclick="LoadData_OnClick()" />
</asp:Content> 

Wenn ich es jedoch so mache


<asp:Content>
<%[...]
Sub LoadData_OnClick()
[...]
%>
<asp:Button onclick="LoadData_OnClick()" />
</asp:Content> 

funktionierts, nur wo ist der unterschied zwischen <% %> und <script></script> ?

18.05.2011 - 15:01 Uhr

Hallo,
ich weiß nicht genau, ob ihr mir hier damit weiterhelfen könnt, aber ich habe bei folgendem Code einen Fehler und ich weiß nicht woher:


Dim g_vInst

 

'disabling wizard

OEEDTMViewer1.EnableWizard = false

        

 'enabling OEEDTMViewer to manage external data

 OEEDTMViewer1.ExternalDataSourceEnabled = true

 

document.GetElementById("TxtTimeFrom").Value =  dateadd("d",-1,now)

document.GetElementById("TxtTimeTo").Value =  formatdatetime(now,0)
HIER SOLL OBJECT EXPECTED SEIN!

TxtTimeFrom und TxtTimeTo sind TextBoxen

jmd eine Idee?

18.05.2011 - 11:15 Uhr

es sieht wie folgt aus:


<asp:Content>
<script language="vbscript">
[...]
Sub LoadData_OnClick()
[...]
</script>
<asp:Button onclick="LoadData_OnClick()" />
</asp:Content>

Wenn ich jetzt Compiliere sagt er mir "ASP.portalpage_cabpage_aspx enthält keine Definition für LoadData_OnClick()

18.05.2011 - 10:56 Uhr

Hallo,
ich möchte in einer Contentpage VB benutzen, allerdings weiß ich nicht wo ich das <script ..></script> einfügen soll.

Wenn ich es innerhalb des <asp:Content> mache sagt er mir , er kennt die funktion nicht und wenn ich es außerhalb mache, dann kommt ja die Fehlermeldung, dass eine asp:Content page nur asp:Content Inhalte enthalten darf.

Das Problem ist, dass ich als Code Behind C# nutze , aber ich für bestimmte ActiveX VB Skript brauche, weil es ziehmlich viel Code ist und ich ihn einfach Kopieren kann und keine Zeit zum umschreiben habe.

gruß ludden

13.04.2011 - 12:46 Uhr

Du willst jetzt nicht allen ernstes eine HTML Datei per OleDb einlesen,oder?

Das kann nicht funktionieren.
Text geht, weil CSV dateien ein übliches mittel sind um Daten zu speichern.

Wenn du HTML Dateien parsen willst benutze das
>

Hab ein DCOM Interface, das gibt mir halt Solldaten als "Html-String" , jetzt will ich die Solldaten aber auswerten. Also muss ich aus ner Tabelle wieder nen DataSet machen.

13.04.2011 - 11:56 Uhr

ich weiß man soll keine Leichen ausgraben, aber ich hab das gleiche Problem nur benutze ich HTML Import und nicht text

Die Lösung meines "Vorredners" funktioniert leider nicht.



using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.OleDb;

namespace converToHtml
{
    class Program
    {
        static void Main(string[] args)
        {
            string accConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\;Extended Properties='\"HTML Import\";HDR=YES;IMEX=1'";
            string accSelect = "SELECT * FROM [text.html]";
            DataSet mySet = new DataSet();
            OleDbConnection myConn = null;
            try
            {
                myConn = new OleDbConnection(accConn);
                OleDbCommand myCommand = new OleDbCommand(accSelect, myConn);
                OleDbDataAdapter myDataAdapter = new OleDbDataAdapter(myCommand);
                myConn.Open();
                myDataAdapter.Fill(mySet);
                myConn.Close();

            }
            catch (Exception e)
            {
                Console.Out.WriteLine(e.Message);
            }
        }
    }
}

13.04.2011 - 10:52 Uhr

Hallo ludden

oder gleich Microsoft Jet OLE DB 4.0
siehe auch:


>

Gruss

Balaban_S

Eigentlich gefällt mir die Idee sehr gut , allerdings bekomm ich folgenden Fehler:
Installierbares ISAM nicht gefunden.

Hier im Forum gibts schon einen Thread dazu, aber seine Lösung funktioniert nicht für mich.


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.OleDb;

namespace converToHtml
{
    class Program
    {
        static void Main(string[] args)
        {
            string accConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\;Extended Properties='\"HTML Import\";HDR=YES;IMEX=1'";
            string accSelect = "SELECT * FROM [text.html]";
            DataSet mySet = new DataSet();
            OleDbConnection myConn = null;
            try
            {
                myConn = new OleDbConnection(accConn);
                OleDbCommand myCommand = new OleDbCommand(accSelect, myConn);
                OleDbDataAdapter myDataAdapter = new OleDbDataAdapter(myCommand);
                myConn.Open();
                myDataAdapter.Fill(mySet);
                myConn.Close();

            }
            catch (Exception e)
            {
                Console.Out.WriteLine(e.Message);
            }
        }
    }
}

13.04.2011 - 09:28 Uhr

Ich denke, dass du das irgendwie parsen muessen wirst.

Hoffe irgendwie dass sich da vlt jmd schon schlaue Gedanken gemacht hat und ich vlt bestehende Klassen benutzen/erweitern kann.

13.04.2011 - 09:23 Uhr

Es gibt doch die möglichkeit ein DataSet/DataTable in eine HTML Tabelle umzuwandeln geht das auch anders rum?

Ich das Problem, dass mir eine DCom Schnittstelle nur eine HTML Tabelle liefert und ich die Daten dadrinn irgendwie weiterverarbeiten möchte. Die Tabelle ist ziehmlich riesig, weshalb ich es vermeiden will mir mit RegEx und Co die Daten raus zu ziehen.

Wäre für Tips/Ideen/Hilfen sehr dankbar 😉

gruß ludden

13.04.2011 - 09:09 Uhr

Allerdings ist der Vorschlag von ujr für sehr viele Werte deutlich schneller, sofern das HashSet wiederverwendet wird.

Und wiederverwendet heißt meißt statische Variable!

Brauchs eigentlich nur 1x, aber die Idee von Dniel find ich ganz nett 😃

12.04.2011 - 16:39 Uhr

Hallo,
ich hoffe ich bin hier richtig, eigentlich ist es keine große Frage aber einen "kurze Frage kurze Antwort Thread" habe ich nicht gefunden.

Jetzt zu meinem Problem:
Seid kurzem Programmiere ich berufsbedingt wieder und bin heute über ein Problem gestoßen über das ich schon seit Jahren nachdenke.

Ich hab eine Variable die versch. Werte annehmen kann. Normalerweise schreit sowas ja nach einem switch case, aber manchmal möchte ich sowas machen


int i = gibMirIrgendEineZahl();
if(i == 1 || i == 2 || i== 4000 || i == 1337 || i = 100)
{
      foo();
}

Sehr unübersichtlich und blöd zu ändern.

Also für jede dieser Bedingungen genau die gleiche Aktion ausführen, weshalb ich einen switch irgendwie als unnötig empfinde er würde ja sowieso so aussehen:


switch(i)
{
case 1 : foo;break;
case 2 : foo;break;
case 4000 : foo;break;
case 1337 : foo;break;
case 100 : foo;break;
}

Das nimmt mir allerdings zuviel Platz weg und extra eine Region definieren halte ich auch für übertrieben.

Jetzt drängt es mich irgendwie sowas zu machen(Achtung pseudocode):


if(i in [1,2,4000,1337,100])
{
      foo();
}

was meiner Meinung nach sehr elegant und kurz wäre. Gibt es sowas und ich bin einfach noch nicht darüber gestolpert? Ich glaub in Python gibt es so ein Konstruckt.

07.04.2011 - 14:18 Uhr

Ich hab mal versucht das Problem mehr zu Skalieren -> siehe Startpost!

07.04.2011 - 11:29 Uhr

Hallo,
ich hab eine COM Schnittstelle, welche mir ein Event liefert sobald etwas bestimmtes passiert.

Jetzt hab ich das Problem, dass in der Schnittstelle die Events ganz anders definiert sind wie in allen Beispielen/Tutorials die ich gefunden habe.

Ich hab nämlich:

delegate newValueEventHandler(LogValue* newVal)
interface LiveLogEvents // enthält Methode newValue(LogValue)
interface LiveLogEvents_Event // enthält event newValue
class LiveLog // enhält event newValue 

So alle Beispiele/Tuts sind jetzt mit object Sender,Eventargs e , aber ich kenn ja weder das eine noch das andere? Bräuchte wirklich mal hilfe. Kann die DLL leider nicht online stellen.

In VB Skript funktionierts, brauch allerdings unbedingt eine Übetragung nach C#


'Address Parameters for our Tool:
IPAddr  = "192.168.25.149"
Port    = 5551
COMPort = 1

'nParts is incremented for every EndOfPart Message
nParts=0

'Return the description for an Alarm number
Function GetAlarmStr(Alarm, Info)
  Dim sMsg
  sMsg=""
  select case Alarm
    case 01:sMsg=Alarm & "='CURRENT SOURCE NOT CONNECTED'"
     ...
    case 210:sMsg=Alarm & "='WARNING: Q8P Firmware too old for surveillance'"
    case 211:sMsg=Alarm & "='SPS communication problem'"
    case else:
      sMsg="Unknown Alarm: " & Alarm
  end select
  GetAlarmStr=sMsg
end Function

' Event handler for newValue
Function Q8LiveLog_newValue( aVal )
  'aVal is an IQ8LogValue Interface
  sMsg="Value: " & aVal.From
  sMsg=sMsg & " G" & aVal.Group & "P" & aVal.PartNumber & ":" & aVal.Program
  sMsg=sMsg & " " & aVal.WeldingVoltage & "V"
  sMsg=sMsg & " " & aVal.WeldingCurrent & "A"
  If (aVal.HasMotor1) Then
    sMsg=sMsg & " " & aVal.WireFeed1 & "m/min"
  End If
  WScript.echo sMsg
  Q8LiveLog_newValue = 1
End Function

' Event handler for newMessage
Function Q8LiveLog_newMessage( Msg )
  'Msg is an IQ8LogMsg interface
  MsgDate=Msg.Date
  MsgType=Msg.Type
  Dim sMsg
  'Display the Message content
  select case MsgType
    case 1:
      sMsg="Measurement:  G" & Msg.Group & "P" & Msg.Part & " ("
      sMsg=sMsg & Msg.Values.Count & " Values)"
    case 2:
      if Msg.Info<>1 Then
        sMsg="New Seam G" & Msg.Group & "P" & Msg.Part & ":" & Msg.Program
      Else
        sMsg="New Part G" & Msg.Group & "P" & Msg.Part & ":" & Msg.Program
      End If
    case 3:
      sMsg="Welding runs G" & Msg.Group & "P" & Msg.Part & ":" & Msg.Program
    case 4:
      sMsg="Program change G" & Msg.Group & "P" & Msg.Part & ":" & Msg.Program
    case 5:
      If Msg.Info<>1 Then
        sMsg="End of Seam G" & Msg.Group & "P" & Msg.Part & ":" & Msg.Program
      Else
        sMsg="End of Part G" & Msg.Group & "P" & Msg.Part & ":" & Msg.Program
        nParts= nParts+1
      End If
    case 6:
      sMsg="Q8 shows Alarm: '" & GetAlarmStr(Msg.Alarm,Msg.Info) & "' G"
      sMsg=sMsg & Msg.Group & "P" & Msg.Part & ":" & Msg.Program
    case 7:
      sMsg="Alarm: '" & GetAlarmStr(Msg.Alarm,Msg.Info) & "' G" & Msg.Group
      sMsg=sMsg & "P" & Msg.Part & ":" & Msg.Program
    case 8:sMsg="Status: '" & GetAlarmStr(Msg.Alarm,Msg.Info) & "'"
    case else:
      sMsg="Unknown LOG Message: " & MsgType
  end select
  sMsg=" " & Msg.From & " " & sMsg
  sMsg=Hour(MsgDate) & ":" & Minute(MsgDate) & ":" & Second(MsgDate) & sMsg
  sMsg=Year(MsgDate) & "-" & Month(MsgDate) & "-" & Day(MsgDate) & " " & sMsg
  WScript.echo sMsg
  Q8LiveLog_newMessage=1
End Function

'PROGRAM Entry Point:

'Create a Q8LiveLog object.
set Q8LiveLog = CreateObject( "Q8Tool.Q8LiveLog")

'Connect to Q8Tool's Event handler(s)
'this will connect "Q8LiveLog_newMessage( Msg )" to Q8Tools IQ8LiveLog
'newMessage event. Q8LiveLog_newMessage will then receive one IQ8LogMsg
'Interface for every LogMessage that is received for the logged Q8
WScript.ConnectObject Q8LiveLog,"Q8LiveLog_"

'Start logging
Q8LiveLog.Start IPAddr,Port,COMPort

'Wait until one part has been welded
while nParts<1
  WScript.Sleep(100)
Wend

gruß Tobi

06.04.2011 - 11:45 Uhr

x86 braucht man nicht!
Hab halt nicht drauf geachtet dass sogut wie alle Klassen nur ein neues Objekt zurückgeben, daher kam der Fehler.

06.04.2011 - 10:42 Uhr

Hm , sehr schlecht der Fehler bleibt der gleiche.


Q8SvrInfoClass test = new Q8vrInfoClass();

Fehlermeldung:
Die COM-Klassfactory für die Komponente mit CLIS {...} konnte aufgrund des folgenden Fehler nicht abgerufen werden: 80040154

Dieser Fehler kommt nicht bei allen klassen , nur bei manchen, dass finde ich etwas eigenartig?

Help incoming? 😃

mfg
ludden

06.04.2011 - 08:34 Uhr

Hallo,
Entschuldigung das ich mich jetzt erst melde, war gestern den ganzen Tag unterwegs. Ich werde das mal ausprobieren.

Neben den ganzen Interfaces müsste da auch eine Klasse definiert sein, von der erstellst du dir dann ein Objekt und du kannst dann ganz normal damit arbeiten und z.B. Methoden aufrufen.

Die Klassen hatte ich schon entdeckt, aber wie gesagt kam beim Compilieren eine Fehlermeldung welche hoffentlich darauf zurückzuführen ist, dass ich den CPU Typ nicht geändert hatte.

05.04.2011 - 16:02 Uhr

Hallo,
hab gerade angefangen mich Job bedingt etwas mit COM Schnittstellen zu beschäftigen. Das einzige was ich bisher gemacht hatte war eine EXCEL Schnittstelle zu benutzen.

Also folgende Schritte hab ich unternommen:

  1. Softwarte installiert
  2. COM - Schnittstelle in VS2008 unter References hinzugefügt
  3. Schnittstelle noch eingebunden, damit ich nicht jedes mal den Ellenlangen Namen schreiben muss

using COM_NAME;

Nun bin ich mit meinen Lateien auch gerade schon am Ende.
Das einzige was ich jetzt von der Firma an Dokumentation hab sind 50 DinA4 Seiten mit sowas:

Interface IQ8Logs: represents (Beschreibung in Textform)...

IQ8Logs Properties
IQ8LogsFolder
IQ8Logs
Count
IQ8LogsLog(nLog) [<- Retrieves an IQ8Log (nicht Logs) interface for the log file on position nLog]anm. von mir
++IQ8LOgs Methods ++
IQ8Logs
Value(FileName)

Ich würde die Funktionen , bzw Variablen gerne irgendwie einbinden , aber entweder bekomm ich den Fehler 80040154 oder er sagt mir Unassigned local variable.
Über evtl Hilfestellung zu diesem Thema oder direkte Codesnippets oder Links zu Tutorials wär ich sehr dankbar.
Ich habe selbst schon viel gesucht(ca 3 Stunden), aber wenn man nicht weiß was man genau sucht findet man auch nicht was man sucht.
Noch eine kleine Bemerkung am Rande, die Schnittstelle ist keine .dll sondern eine .exe , falls dies von Bedeutung ist.

mfg

ludden

24.10.2010 - 14:22 Uhr

Ja, steht drinn, wenn ichs allerdings wegmache, dann komm beim Kompilieren der Consolenapp, ein Fehler, weil er die UI.Webcontrols nichtmehr findet.

Lösung wär wohl, die zwei Namespaces jeweils in ein eigenes Projekt auszulagern?

24.10.2010 - 13:57 Uhr

Hallo,
ich habe folgendes Problem:

Ich hab eine Klasslibary, die zum einen von einem Website-Projekt genutzt wird und dann zum testen nochmal von einem Consolenprojekt. Das hat auch alles bis vor kurzem super Funktioniert.
Nun habe ich einen Excel-Export für die Website erstellt, dazu musste ich Webcontrols einbinden.


using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

Als ich dann meine Berechnungen mit der Consolenanwendung überprüfen wollte musste ich feststellen, dass dies Aufgrund der WebControls nichtmehr funktioniert.
Also hab ich dann die Klassen, welche Webcontrols benutzen in einem zweiten Namespace ausgelagert(aber gleiches Projekt).


NameSpace1: keine WebControls
NameSpace2: Webcontrols
In einem Projekt!

So jetzt zu meinem Problem:

Wenn ich jetzt in meiner Consolenanwendung
using NameSpace1 mache, dann sagt er mir "Es fehlt eine Usingdirektive oder Assembley Verweis"
OBWOHL ich die Classlib eingebunden habe. Lösche ich die Classlib jetzt und füg sie wieder hinzu. Verschwindet der Fehler zunächsteinmal, dann wenn ich wieder auf Compilieren klicke , dann erscheint wieder die Fehlermeldung "Es fehlt eine Usingdirektive oder Assembley Verweis".

Jmd einen Lösungsvorschlag?

13.10.2010 - 01:53 Uhr

Hallo,
ich habe folgendes Problem:
Ich habe eine Datenbank aus der bestimmte(nicht alle) Daten aus einer MSSQL 2008 EXPRESS Datenbank ausgelesen werden, diese werden dann auf einer Website dargestellt als Tabelle.
Soweit funktioniert dass auch alles. Nun kam der Kunde bei mich und möchte diese Tabelle als Excel haben. Als hab ich gegoogelt und bin auf folgende Seite gestoßen:
Microsoft Support bzgl MSSQL zu EXCEL . Auch das funktioniert, wenn ich die Website über den VS2010 Compiler aufrufe. Dann öffnet sich Excel mit den Daten.

Wenn ich das ganze jetzt über den IIS laufen lasse sagt er mir immer, dass die Datei(Costums.htm) schon verwendet wird ODER es kommt eine Fehlermeldung, dass die benutzte COM-Schnittestelle nicht benutzt werden darf.

Dann habe ich angefangen zu recherchieren und hab gelesen, dass diese Art von Setup mit ASP.NET und MS Office sogut wie immer Probleme bereitet.

Leider möchte der Kunde auf jedenfall ein Excel format(bevorzugt .xls) und keine XML.

Die Frage ist , gibts noch andere möglichten eine .xls zu erzeugen? Oder sollte ich vlt doch Überzeugungsarbeit leisten bzgl XML?

12.10.2010 - 12:28 Uhr

du kannst auch über Tortiose ein Export auf den Ordner machen.

Das ging leider nicht weil ich mein Repository gelöscht hatte, das wär ja mein Problem.