Laden...

Forenbeiträge von tom-cat Ingesamt 77 Beiträge

04.01.2012 - 14:16 Uhr

Hallo zusammen,

ich bin auf der Suche nach einer Componente für ASP.NET C# welche ohne die Plugins von Adobe etc. auskommt.

Es sollte möglich sein die PDF auf einem Panel oder sonstiges anzuzeigen, kleine Voransicht anzuzeigen und schön wäre es wenn man z.B. einen "Posti" oder Klebezettel auf die PDF heften kann.

Hat da jemand eine Idee ?!

Beste Dank
Gruß
Tom

15.09.2011 - 09:47 Uhr

Okay das ich JS einsetzten muss, ist mir wohl bekannt.

Die Frage stellt sich nur, wie ich den Seitenaufruf abfangen kann, dass er fertig ist.
Klar kann ich bei Klick z.B. eine Thickbox oder so auslösen die ein Animiertes GIF (ladebalken) ausführt. Jedoch muss die Box stehen bleiben wenn die Seite sich läd ...

15.09.2011 - 09:33 Uhr

Hallo zusammen,

ich habe zur Konzeption eine Frage:

Ich habe eine normale ASP.NET Seite, wo ich auf einen Button klicke und von dort aus geht dann eine neue Seite auf.
Die neue Seite, die aufgeht, hat sehr viele Controls und braucht etwas länger zum laden, gerade wenn der Benutzer nicht gerade eine Performante DSL Leitung hat.

Gibt es die Möglichkeit nicht irgendwie einen Ladebalken anzuzeigen, wenn ich auf den Button klicke (In einer Lightbox oder so) und wenn die Seite fertig ist mit laden, dass diese Lightbox wieder verschwindet.

So überbrücke ich schön das Laden Seite für den Benutzer.

Würd mich freuen wenn der ein oder andere ein paar Denkanstöße dazu hat oder ein paar quellen.

LG
Tom

27.07.2011 - 09:40 Uhr

Moin zusammen,

ich habe folgendes vor:

WindowsForm

  • Button um eine Abfrage auszuführen
  • Abfrage wird ausgeführt und es soll sich auf der Form auf einem Panel ein Usercontroll darstellen.

Das erste Usercontroll enthält 3 Tab Pages welches wiederrum mit einem Usercontroll gefüllt werden soll welches ein DataGridView enthält.

Ist das so Sinnig zu machen oder seht Ihr dort andere Wege ?
Wichtig: Das UC mit dem DataGridView wird auf den 3 TabPages dargestellt und wird auch auf jedem Unterschiedliche Daten enthalten welche Gleichzeitig dargestellt werden sollen.

Ich würde mich über eure Antworten freuen.

LG
Tom

20.05.2011 - 09:09 Uhr

Moin zusammen,

ich habe eine kleine Windows GUI in der ich eine Datenbank Abfrage mit dem EF4 ausführe und die Daten in einem Grid anzeigen lasse.
Wenn ich keinen BW einsetzte, funktioniert alles super gut, nur das die Form immer einfriert. Dafür sind ja die BW da, dass das nicht passiert -:-)

Also ich habe folgende Fehlermeldung und komme da nicht weiter:> Fehlermeldung:

Ungültiger threadübergreifender Vorgang: Der Zugriff auf das Steuerelement gridInvoiceHeader erfolgte von einem anderen Thread als dem Thread, für den es erstellt wurde.

Folgender Code dazu:
=> Hier wird der Worker aufgerunfen:

private void cmdSearchInvoice_Click(object sender, EventArgs e)
        {
            if (bw.IsBusy != true)
            {
                bw.RunWorkerAsync();
            }
        }

Hier ist der Worker:

private void bw_DoWork(object sender, DoWorkEventArgs e)
        {
            BackgroundWorker worker = sender as BackgroundWorker;

            for (int i = 1; (i <= 10); i++)
            {
                if ((worker.CancellationPending == true))
                {
                    e.Cancel = true;
                    break;
                }
                else
                {
                    // Perform a time consuming operation and report progress.
                   [B] gridInvoiceHeader.DataSource = InvoiceAccessor.GetUpcomingBookingList(textBox1.Text);[/B]
                    worker.ReportProgress((i * 10));
                }
            }
        }

Das fett makierte ist das, wo ich meine Abfrage aufrufe und wo er mir eben die o.g. Fehlermeldung rauswirft.

HILFFEEEE 😃)))

LG
Tom

16.03.2011 - 13:29 Uhr

Hi Schaedld

bei deinem Ansatz komme ich nicht weiter bei :


foreach(var cell in e.row.cells){
    Control myControl = (Control)cell.FindControl("MyControl");
}

beim cell habe ich kein FindControl zur auswahl.
Ich gehe auf die ASPxGridViewTableRowEventArgs und bekomme dort dowas nicht angeboten.

16.03.2011 - 12:08 Uhr

Danke euch.
Ich habe jetzt diesen Ansatz gewählt:

  ASPxDropDownEdit dd =
                (ASPxDropDownEdit)ASPxGridView2.FindRowCellTemplateControl(e.VisibleIndex, (GridViewDataColumn)ASPxGridView2.Columns["Test2"], "ASPxDropDownEdit1");

Damit komme ich zumindest auf die DropDownEdit Box.
Dennoch wenn ich jetzt hier weiter will, geht auch das irgendwie nicht:

   ASPxTreeView tv2 =
                (ASPxTreeView)dd.FindControl("ASPxTreeView");
          tv2.VirtualModeCreateChildren += new TreeViewVirtualModeCreateChildrenEventHandler(treeView_VirtualModeCreateChildren);

Das ganze habe ich im RowPrepared Event gelöst.

16.03.2011 - 10:52 Uhr

Ja das habe ich auch schon gemacht, weil mir der Gedanke auch gekommen ist, jedoch findet FindRowTemplateControl oder andere Find Methoden noch nicht mal die "1. Ebene" sprich das DropDownEdit1.

Wenn ich das ganze ohne ein Grid mache kann ich ohne Probleme in das Treeview welches im Template der Dropdownbox liegt zugreifen ?! 😦

Edit:
Ich habe es so versucht:


  ASPxTreeView tv = ASPxGridView2.FindRowTemplateControl(e.VisibleIndex,"ASPxTreeView1") as ASPxTreeView;

// Oder hier über beide Ebenen
            ASPxDropDownEdit dde = ASPxGridView2.FindRowTemplateControl(e.VisibleIndex,"ASPxDropDownEdit1") as ASPxDropDownEdit;
            ASPxTreeView tv = dde.FindControl("ASPxTreeView1") as ASPxTreeView;

16.03.2011 - 10:19 Uhr

Ich habe mir auch schon die Funktion von Peter angeschaut wo ich Rekursiv danach suchen kann, jedoch findet er auch mit dieser Methode das TreeView nicht.

Hier mal ein ausschnitt des ASPX Codes auch noch:


<dx:GridViewDataDropDownEditColumn Caption="Test2" VisibleIndex="2">
                <DataItemTemplate>
                    <dx:ASPxDropDownEdit ID="ASPxDropDownEdit1" runat="server" OnClientDropDownOpened="OnClientDropDownOpenedHandler" ClientIDMode="AutoID">
                        <DropDownWindowTemplate>
                            <dx:ASPxTreeView ID="ASPxTreeView1" runat="server" >
                              
                            </dx:ASPxTreeView>
                        </DropDownWindowTemplate>
                    </dx:ASPxDropDownEdit>
                </DataItemTemplate>
                            </dx:GridViewDataDropDownEditColumn>

Es ist ja im Prinzip egal ob ich nun die Components von DevExpress nutze oder ein normales Grid, dabei funktioniert es leider auch nicht 😦

16.03.2011 - 09:00 Uhr

Moin zusammen,

ich hab da mal ne kleine Frage.
Ich habe ein GridView, welches in den DataItemTemplates eine DropDownBox hat und in dieser wiederrum einen TreeView.

Um nun im CodeBehind dran zu kommen, muss ich mir ja das TreeView suchen und dann befüllen etc.pp.

Hier habe ich mal mit anfangen:

protected void ASPxGridView1_RowCreated(object sender, DevExpress.Web.ASPxGridView.ASPxGridViewTableRowEventArgs e)
        {
            ASPxTreeView tv = this.ASPxGridView2.FindRowTemplateControl(e.VisibleIndex,"ASPxTreeView1") as ASPxTreeView;
            tv.VirtualModeCreateChildren += new TreeViewVirtualModeCreateChildrenEventHandler(treeView_VirtualModeCreateChildren);

        }

Das ist beim Grid angegeben wenn es sich läd bez. im "OnHtmlRowCreated="ASPxGridView1_RowCreated"".

Dabei bekomme ich jedoch schon einen Fehler das er das TreeView nicht finden kann und knallt mir eine NULL Exeption raus.
Teste ich das ganze ohne Gridview nur mit einer Combobox und TreeView klappt das super.

Hier der Fehler:

Zeile 63:         {
[B]Zeile 64:             ASPxTreeView tv = this.ASPxGridView2.FindRowTemplateControl(e.VisibleIndex,"ASPxDropDownEdit1") as ASPxTreeView;[/B] <=== NULL EXEPITON
Zeile 65:             tv.VirtualModeCreateChildren += new TreeViewVirtualModeCreateChildrenEventHandler(treeView_VirtualModeCreateChildren);
Zeile 66: 
Zeile 67:         }

Hat jemand ne Idee ?

Besten Dank schon mal !

Tom

22.02.2011 - 11:10 Uhr

Hallo Forum,

ich habe eine Frage zum TreeView.

Meine Datenbank schaut wie folgt aus:


UID	CodeName	CodeDesc	Level	MKSub
1	14000000	Produktgruppe	1	1	
2	14010000	Prod.Untergru	2	1
3	14010100	Prod.Unt.Gr.10	3	1
4	14010200	Prod.Unt.Gr.20	4	0
5	14010210	Prod.Unt.Gr.21	4	0
6	14010220	Prod.Unt.Gr.22	4	0
7	15010000	Produktgruppe	1	0
8	16010000	Produktgruppe	1	0
	

Daraus muss ich einen TreeView zusammenbauen anhand der Daten.
Zur Erklärung des Schemas:

UID => Identifier
CodeName => Produktklasse (immer 6 stellen)
CodeDesc => Beschreibung der Gruppe
Level => In welcher Tiefe von CodeName
MKSub => Beschreibt ob es eine Untergruppe gibt.

Habt Ihr ne Idee oder einen Vorschlag wie ich das zusammenbauen kann ?

Gruß
Tom

16.02.2011 - 16:57 Uhr

Schau dir mal das Ado.net EF von Microsoft an.
Ich würde Datenbank Abfragen nur noch damit machen und wenn das die "alten" Methoden noch nicht kennst, kannste gleich mit dem neuen anfangen 😃

ab zum EF

Gruß
Tom

16.02.2011 - 08:51 Uhr

Guten morgen zusammen,

ich habe ein kleines Portal wo der User einen kleinen Workflow durchgehen muss.
Und zwar bekommt der kleine Auftrag immer einen anderen Status den der User per Hand setzten muss (Dropdownlist).

Nun habe ich 6 Images als Steps eingefügt wo er Visuell sieht, welche Schritte er schon gemacht hat und welcher er noch machen muss.

Hier meine Frage wie ich das am besten lösen kann mit den Images.

Es werden die 6 Images angezeigt und zwar als Image1_off bis Image6_off.
Wenn ein Status z.B. "geprüft" erreicht ist, muss Image3_off aus Image3_on gesetzt werden.
Wird der Auftrag freigegeben muss Image6_off auf Image6_on gesetzt werden jedoch alle andere imageX_off auf ON auch.

Habt Ihr ne Idee wie man sowas am einfachsten lösen kann ???

BG
Tom

15.02.2011 - 12:09 Uhr

Moin Board,

wie kann ich bei einer DropDownList die mit Werten der DB befüllt wird, den akt. gesetzten Eintrag setzen beim Page Load ?

DB Tabelle mit Werten die in der DDL stehen sollen
DB Tabelle wo der akt. Wert eingetragen wird der gespeichert wird.

Klar ich hole mir die DB Tabelle mit dem Werten zum Füllen ab, aber wir gehe ich jetzt auf die andere DB Tabelle und setzte den Wert der ja gespeichert war in die DDL als 1. Wert der angezeigt wird.

Tom

28.01.2011 - 09:39 Uhr

verwendetes Datenbanksystem: 2005

Hallo zusammen,

seid ein paar Tagen kann ich beim EF keine Spalten mehr abrufen.

Also ich Importiere einen Stored Produce und sage dann "Funktionsimport". Dort kann ich ja sagen Spalteninformationen abrufen und er gibt mir die Spalten zurück die die Proc liefert. Danach kann ich den neuen Komplexen Typen sauber erstellen.
Das Funktionierte auch bis vor ein paar Tagen obwohl nur ein Feld mehr in die Proc gekommen ist. Auch wenn ich das Feld in der Proc wieder rausnehme klappt es nicht.

Bei einer anderen Proc geht es ohne Probleme.
Ich habe die Abfrage die VS2010 an MSSQL sendet beim Abruf mal im Profiles beobachtet. Einmal bei der Fehlerhaften Proc und einmal bei einer Funktionierenden (sprich Spaltenabruf).
Die Abfragen sind identisch und liefern beide Ergebnisse zurück.

Habt ihr so ein Problem schon einmal gehabt ?!

BG Tom

24.01.2011 - 14:49 Uhr

verwendete Web-Technologie: .Net C# 4.0

Hallo zusammen,

wir haben ein Portal wo die Enduser Rechnungen bearbeiten können.
Nun möchten wir, da nicht jeder Zugriff darauf braucht, einigen Mitarbeitern Rechnungen zuweisen die nur sagen können OK oder NICHT OK. Das ist soweit kein Thema.
Ich möchte jedoch nicht für die "Externen" Mitarbeiter ausserhalb des Systemes Benutzerdaten anlegen. Ich stelle mir das wie folgt vor:

MA1 sagt in dem System, schick das mal MA2 zur Kontrolle (Kein Thema)
MA2 bekommt eine Mail mit einem Link zu dem Portal wo er sich die Daten anzeigen lassen kann und Bearbeiten kann.
Hier ist genau die Frage wie Ihr sowas machen würdet.

Meine Vorschläge:

  • Link mit irgendwie einer generierten GUID und verfall darauf (da weiss ich nicht wie ich sowas realisieren soll)
  • Link mit Klartext Benutzername und Passwort welches ich einmalig irgendwie angelegt habe.

Habt ihr da eine Idee oder wie würdet Ihr das machen ?
Wenns geht auch nen bisschen Technischer wie ich welche Daten wo hinschreiben würdet.
Wichtig noch: Hier geht es nur darum den Zugriff auf das Portal zu bekommen nicht die Mail senden oder sonstiges....

Beste Grüße
Tom

18.01.2011 - 11:52 Uhr

Okay schon klar das SelectItem immer null ist solange nix gewählt ist,
aber das frage ich doch oben ab.


departmentID = cbDepartment.SelectedItem.Value == null ? ""
// bis hierhin schaut er ob Value = null ist und setzt dann "" also nichts rein

: cbDepartment.SelectedItem.Value.ToString();
// wenn was gewählt ist, dann nimmt er den Wert davon

deshalb verstehe ich die Fehlermeldung nicht.

18.01.2011 - 11:25 Uhr

Hallo zusammen,

ich bekomme immer einen Fehler bei


   departmentID = cbDepartment.SelectedItem.Value == null ? "": cbDepartment.SelectedItem.Value.ToString();

Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.

Aber ich fange doch den NULL Wert ab ?!
Was mache ich dalsch dabei ?

10.01.2011 - 14:27 Uhr

Hi MarsStein,

du sprichst von "Full.Qualified.Assemblyname" beim Assembly.

Bei mir ist das der hier: assembly="ucLabelLastName.ascx"
und der namespace: namespace="nameofCompany.Web.WebClientComponents.Labels"

Auch wenn ich den Assembly auf: assembly="nameofCompany.Web.WebClientComponents.Labels.ucLabelLastName.ascx"
setze kann ich es nicht laden ....

und Ja es handelt sich um ein Webprojekt

10.01.2011 - 14:09 Uhr

hmmm also so klappt das irgendwie nicht.

hier mal das Controll als Code


<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="ucLabelLastName.ascx.cs" Inherits="nameofCompany.Web.WebClientComponents.Labels.ucLableLastName" %>
<asp:Label ID="lbLastName" runat="server"></asp:Label>

Und hier aus der web.config


   <add tagPrefix="my" tagName="LableLastName" namespace="nameofCompany.Web.WebClientComponents.Labels" assembly="ucLabelLastName.ascx"/>

10.01.2011 - 13:37 Uhr

Hallo zusammen,

ich habe in meiner VS Projektmappe 5 Projekte. Eins davon soll nur die Controlls enthalten.
Wie ich ein Usercontroll einbinde weiss ich, jedoch nicht wie es über das andere Projekt hin gehen soll.
Einen Verweis auf das Projekt wo die Controlls enthalten sind, habe ich.

In der Web.config habe ich derzeit diesen Tag.


 <pages>
      <controls>
        <add tagPrefix="ax" tagName="LableFirstName" src="~/Lables/ucLabelFirstName.ascx" >
        </add>
   
      </controls>
    </pages>

Jedoch liegt ja der src in dem anderen Projekt und einbinden kann ich das Controll auch nicht.

Hat da jemand eine Idee ?

BG Tom

31.12.2010 - 12:07 Uhr

Dank dir für die schnelle Rückmeldung.

Wie würdest du denn die list befüllen ? Bräuchte da mal nen kleinen Anstoß 😃

31.12.2010 - 11:28 Uhr

verwendetes Datenbanksystem:MSSQL 2005 SP3

Hallo zusammen,

ich habe eine Klasse die mir Daten aus der Datenbank läd und mir ins Result quasi die Daten liefert, welche ich dann weiter verwende.
Leider bekomme ich das nicht so hin wie gewünscht.

Folgendes habe ich schon gemacht (funktioniert)


 public List<Data> GetLieferanten(string connString)
    {
        var result = new List<Data>();

        using (InvoiceClientEntities db = new InvoiceClientEntities(connString))
        {
            var x = from tab in db.Data
                    select tab;
            if (x.Count() > 0)
            result = x.ToList();
                
        }

        return result;
    }

Das liefert mir die gesamte Liste der Lieferanten aus der Tabelle Data zurück inkl. aller Spalten. Das möchte ich aber nicht bez. ich muss eig. noch eine Liste aufbauen, wo ich noch Spalten direkt mit in das Grid gebe.
Zweck des ganzen ist noch ein Button der im Grid liegt, welchen ich mit einem Hyperlink befülle.
Als normale Funktion klappt das ohne Probleme, jedoch nicht mit einer Klasse wie hier beschrieben.
Hier der Code den ich angefangen habe:

 public List<Data> GetLieferanten(string connString)
    {
        var result = new List<Data>();

        using (InvoiceClientEntities db = new InvoiceClientEntities(connString))
        {
            var x = from tab in db.Data
                    select tab;
            if (x.Count() > 0)
            foreach (var items in x)
                {
                    Services.Lists.InvoiceData l = new Services.Lists.InvoiceData();
                    l.ID = (int)items.ID;
                    l.iNumber = items.iNumber;
                    l.LName = items.LName;
                    l.PDFShowText = "PDF";
                    l.PDFShowNavUrl = "hier der Link dann der noch zusammengesetzt wird in einer anderen classe";
                    xlist.Add(l);
                }
            result = xlist.ToList();       
                
        }

        return result;
    }

Die Klasse InvoiceData ist eine normale Klasse wo einfach nur die Colums stehen mit {get; set;}

bei xlist.ToList() bekomme ich immer den Fehler:

Eine implizite Konvertierung vom Typ "System.Collections.Generic.List<Services.Lists.InvoiceData>" in "System.Collections.Generic.List<Infrastructure.Db.Data>" ist nicht möglich.

Jemand ne Idee ? Steh da etwas auf dem Schlauch

Gruß
Tom

08.12.2010 - 15:57 Uhr

Okay, das hört sich gut an,
hast du ein Beispiel wie ich das setzten kann ?
Also ich müsste dann ja die Web.conf die connectionStrings beschreiben....

08.12.2010 - 15:02 Uhr

verwendetes Datenbanksystem: MSSQL 2005

Hallo zusammen,

wir haben eine Anwenung (WebForms) am laufen, die derzeit noch "Normale" DB Abfragen sendet und kein LinqToSql einsetzt.
Das System ist Mandantenfähig und so gebaut, dass beim Login der ConnectionString aus der Datenbank für den Mandanten geladen wird, und dieser in den Abfragen benutzt wird.

Nun würde ich gerne das System umstellen bez. neu Aufsetzten und LinqToSql wählen.
Wie ist dort die Möglichkeit sowas abzubilden, gerade in Hinblick auf die Mandantenfähigkeit.
Kleiner Hintergrund hier ist, das jeder Mandant eine eigene Datenbank hat und nicht alle Mandanten in einer Datenbank und Unterschiedlichen Tabellen liegen.

Besten dank für eure Antworten

Gruß
Tom

07.12.2010 - 10:37 Uhr

Hallo zusammen,

ich habe ein DataGridView auf meiner WebForm und dort bestimmte inhalte die wie folgt ausssehen könnten:

Artikelnummer | Beschreibung | Menge Gesamt | Menge Pos |
111222 | Testartikel | 10 | 5
111222 | Testartikel | 10 | 2
122333 | Artikel 1 | 200 | 0

nun habe ich in dem Grid ein ein RowCommand was mir ein Panel öffnet, und dort muss ich in einer Textbox die Summe von Artikel 111222 abbilden (sprich Menge Pos) wäre dann ja 7 von Maximalmenge 10

Also sprich ich muss eine Funktion haben wo ich nach Artikelnummer in dem Grid schaue und nach MaxMenge ob die gleich ist.

Bis jetzt habe ich sowas hier jedoch geht mir die FUnktion durch das ganze Grid:

int zwischenmenge;    
                    int tot = 0;
                    for (int i = 0; i < GVShowPositions.Rows.Count; i++)

                    {
                        tot += Convert.ToInt32(GVShowPositions.Rows[i].Cells[7].Text);
                        zwischenmenge =  Convert.ToInt32(lbMengeRow.Text) - tot;
                        //lbMaxQty.Text = tot.ToString() - lbMengeRow.Text;
                        lbMaxQty.Text = Convert.ToString(zwischenmenge);
                    }

                    if (tot == 0)
                    {
                        lbMaxQty.Text = "0";
                    }
03.12.2010 - 14:12 Uhr

xxxprod, super danke dir !

ja bis man da drauf auch erstmal kommt ! War genau das problem bei mir ...
Habt vielen dank für eure Anregungen ...

Gruß

03.12.2010 - 13:40 Uhr

Also ich veröffentliche mein Projekt über Dateiebene. Das hat bis jetzt immer gut funktioniert.

Ich habe folgendes noch festgestellt.
Wenn alle Spalten mit Werten belegt sind, kommt kein Fehler (Logisch da ja auch kein NULL Wert existiert in den Spalten)
Sobald eine Spalte mit NULL vorhanden ist, bekomme ich den Fehler, jedoch fange ich diesen ja im Reader wie oben beschrieben ab.
Es scheint mir so, das auf dem Veröffentlichten Projekt die Funktion gar nicht greift (also den NULL Wert abfangen).
Lasse ich die Abfrage raus und Debuge bekomme ich logischerweise auch dort den Fehler.

Auch das Log sagt mir im Debug Modus das alles ok ist, auch wenn ich die einzelnen Zeilen Debuge, sehe ich das dort ein NULL Wert ist und die If Schleife greift.

Ich kann mir das irgendwie nicht erklären.
Die .NET Umgebung ist auf dem Webserver die gleiche wie auf dem Rechner wo ich programmiere.

03.12.2010 - 13:15 Uhr

Oder lass den Port 25 einfach nur zu.
Bei mir war das auch mal der böse McAfee ... 😃

03.12.2010 - 12:55 Uhr

Hallo zusammen,

ich komme hier einfach nicht weiter... Ich lese mittels einer PROC Daten aus einer MSSQL Datenbank aus und stelle diese in einem Grid dar.
Alles soweit kein Problem. In der Tabelle befinden sich NULL Werte die ich im Reader auch mittels:

if (!reader1.IsDBNull(0))
                    {
                        int _FID = reader1.GetInt32(0);
                        l.ID1= _FID;
                    }

herrausfiltere.
Dann starte ich mein Projekt und alles Funktioniert ohne Probleme.
Veröffentliche ich nun das Projekt auf unserem Webserver, bekomme ich immer den Fehler:

Fehler bei BuildInvoiceTable:System.Data.SqlTypes.SqlNullValueException: Data is Null. This method or property cannot be called on Null values. at System.Data.SqlClient.SqlBuffer.get_Int32() at System.Data.SqlClient.SqlDataReader.GetInt32(Int32 i) at xxx.xxx.xxx.BuildInvoiceTable(String ConnString, String _ForeignInvoiceID) in 

angezeigt.
Wie gesagt wenn ich es Debuge und auch mir dort die Werte dann im Reader selber anschauen, stehen zwar 0 drin, jedoch bekomme ich die Tabelle sauber angezeigt.

30.11.2010 - 14:16 Uhr

Das komisch an der Nummer ist ja, wenn ich ein ganze leeres Projekt nehme und folgendes mache:

protected void Button1_Click(object sender, EventArgs e)
        {
            Label1.Text = DropDownList1.SelectedItem.Text;
        }

Dann wird das Lable sauber gesetzt, mache ich das in meinem Projekt wird das nicht so gesetzt. Zudem nur als Hinweis: Ich arbeite mit Mastern... kann das an dem Tag der <Form> liegen ?!

Hier ist der Code wo es nicht klappt:

protected void Page_Load(object sender, EventArgs e)
        {
            // Sessions laden
            string _VForeignInvoiceID = base.Request.Params.GetValues("fid")[0];
            string _VConnString = (string)(Session["ConnString"]);
            string _VUser = (string)(Session["Username"]);

            // Visibel der Daten
            PanelSetAllInvoice.Visible = false;

            BuildInvoiceTable(_VConnString, _VForeignInvoiceID);
            BuildDDLStatus(_VConnString);

        }

        private void BuildDDLStatus(string ConnString)
        {
            try
            {

                string sqlQuery = "select * from SPStatus";
                SqlConnection objCon1 = new SqlConnection(ConnString);
                SqlCommand objCommand1 = new SqlCommand(sqlQuery, objCon1);
                objCon1.Open();
                SqlDataReader dr = objCommand1.ExecuteReader();

                DDLStatus.DataSource = dr;
                DDLStatus.DataTextField = "StatusName";
                DDLStatus.DataValueField = "UID";
                DDLStatus.DataBind();
                dr.Close();
                objCon1.Close();
            }

            catch (Exception e1)
            {
                lbError.Text = "Fehler bei Statusdaten holen: " + e1;
            }
        }

        protected void btnSaveStatus_Click(object sender, EventArgs e)
        {
            // Status in die Datenbank schreiben
            lbError.Text = DDLStatus.SelectedItem.Text;
        }

Ich mache dort ja nichts anderes als dem Lable das Item.Text zuweisen ... klappt aber nicht 😦

29.11.2010 - 17:04 Uhr

Hallo zusammen,

ich brauche mal kurz euren Rat bei DropDownLists und einem Postback.

Ich öffne eine Seite und habe ich Page_Load eine Abfrage auf die Datenbank die mir die DDL befüllt. (Klappt super)
Dann wähle ich in der DDL einen Eintrag aus und drücke auf einen Button. Danach erscheint der gewählte Eintrag in meinem Lable.
Das klappt aber nur, wenn ich nicht im Page_Load die DDL befüllen lasse sondern die Eintrage manuell in die DDL schreibe.

Wie kann ich nun, wenn ich die DDL List im Page_Load befüllen lasse den gewählten Eintrag im Lable darstellen und die DDL auf den gewählten eintrag stehen lassen ?!

Gruß
Tom

22.11.2010 - 12:15 Uhr

Super danke dir,

jedoch kommt noch ein kleiner Fehler in VS

Fehler 7 Da "axTool.classes.clsBuildCombobox.model.BuildSuppilierDDL()" "void" zurückgibt, darf auf ein Rückgabeschlüsselwort kein Objektausdruck folgen. D:\xxxxxl\classes\clsBuildCombobox.cs 42 21 axTool

22.11.2010 - 11:56 Uhr

Hi Felix,

wie mach ich sowas ? Gerade in Hinblick auf LinqToSQL ? hast du ein Beispiel ?

22.11.2010 - 11:50 Uhr

Hallo zusammen,

ich bin noch etwas im Anfangsstadium von C# und habe hier noch eine Frage zu Comboboxen auf mehreren Formen.

Siutation sieht wie folgt aus:

Ich habe 4 WinForms mit jeweils einer Combobox.
Diese Combobox wird derzeit bei mir in jeder Datei so befüllt:


private void BuildSuppilierDDL()
        {
            data.SupplierDataContext db = new data.SupplierDataContext();
            var q = from i in db.StandardSupplier
                    select i;

            foreach (var items in q)
            {
                comboBox1.Items.Add(items.SupplierName);
            }
        }

// Aufruf passiert eben so:
BuildSupplierDDL();

Nun möchte ich nicht immer, wenn sich was ändert, in jede Form springen und dort den Code ändern.
Deshalb meine Frage, ob man diese Abfrage in eine "Klasse" oder so schreiben kann und dann auf der WinForm der Combobox diese einfach laden kann.

Würde mich freuen wenn Ihr mich da unterstützen könnt, obwohl man hier ja eig. nicht "Anfängerfragen" stellen darf 😃

Gruß
Tom

18.11.2010 - 10:43 Uhr

Okay ich habe soweit die ganzen Listboxen bereinigt und diese können nun verglichen werden.

Ich versteh das mit dem Vergleich per Hash nicht wirklich ... 😦
Hilfööööö 😃

17.11.2010 - 19:05 Uhr

Ok ich hab mir das gerade angeschaut,
dennoch hab ich gerade gesehen das ich vorher noch ein anderes Problem habe.
Ich muss die Dateinamen noch beschneiden sprich die Endung abschneiden da die werte Ohne Endung in der Datenbank stehen.

string filepath = @"D:\UnderDev\Testfiles\in";
            DirectoryInfo di = new DirectoryInfo(filepath);
            FileInfo[] rgFiles = di.GetFiles("*.txt", SearchOption.AllDirectories);

            foreach (FileInfo fi in rgFiles)
            {
                
                  lbInhaltVerzeichnis.Items.Add(fi);
            }

So hole ich mir die Daten und schreib die in die List rein.
Jedoch mit der Dateieindung.

Das vergleichen Funktioniert exemplarisch schon im Testbetrieb.
Irgendwie versteh ich das nicht wie ich die Filenames noch beschneiden soll hier im Forum bei den anderen Einträgen.
Es währe ganz nett wenn dort einer mir ne Antwort liefern könnte 😃
Danke euch ...

17.11.2010 - 16:52 Uhr

Jap sollte Clientseitig passieren.

Hast du da mal nen Schnippsel zu wie du das damit meinst ?

17.11.2010 - 16:45 Uhr

Hallo zusammen,

ich möchte gerne 2 Datenbank Abfragen (liefern mir einen Dateinamen) mit einem Filedirectory vergleichen.

Die Datenbankabfragen, sprich Dateinamen habe ich, das File auslesen auch schon.

Wie kann ich jetzt die Daten miteinander vergleichen?
Es sollte folgendes dabei passieren

DB1 = 1. Datenbank System
DB2 = 2. Datenbank System
File = Durchsucht alle Unterordner und gibt alle Files zurück davon

Ist "File" in DB1 oder DB2 enthalten ? Wenn "ja" dann schreib in ListBox1 wenn "nein" dann schreib in ListBox2 den Dateinamen rein.

Gruß
Tom

09.11.2010 - 09:01 Uhr

Okay also den Link mitsenden geht dabei nicht aus Organisatorischen Gründen.
Hat jemand nen kleines Beispiel wie ich die PDF dann mit nem Stream abhole und in das Attachment packe ?

08.11.2010 - 14:26 Uhr

Hallo zusammen,

ich würde gerne eine PDF Datei per Mail versenden.
Dazu nutze ich die Klasse using System.Net.Mail.
Das versenden der Mail klappt auch ohne Probleme, nur beim Attachment habe ich ein kleines Problem.

ich generiere mein Attachment wie folgt:


 Attachment attachFile = new Attachment(pdfURL);
           myMail.Attachments.Add(attachFile);

die "pdfURL" ist eine URL wie z.B. "http://server/loc=sdasdsdasd".
Die URL generiert mir dann die PDF Datei, sprich wenn ich die URL im Browser aufrufe, bekomme ich die PDF angezeigt.

jedoch wenn ich jetzt das ganze Debuge hält VS2010 mit an der Stelle des Attachments an und sagt mir:

Illegales Zeichen im Pfad.

ArgumentException: Illegales Zeichen im Pfad.]
   System.Security.Permissions.FileIOPermission.HasIllegalCharacters(String[] str) +9369221
   System.Security.Permissions.FileIOPermission.AddPathList(FileIOPermissionAccess access, AccessControlActions control, String[] pathListOrig, Boolean checkForDuplicates, Boolean needFullPath, Boolean copyPathList) +73
   System.Security.Permissions.FileIOPermission..ctor(FileIOPermissionAccess access, AccessControlActions control, String[] pathList, Boolean checkForDuplicates, Boolean needFullPath) +44
   System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath) +590
   System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share) +83
   System.Net.Mail.AttachmentBase.SetContentFromFile(String fileName, String mediaType) +76
   System.Net.Mail.AttachmentBase..ctor(String fileName) +48
   System.Net.Mail.Attachment..ctor(String fileName) +17
   axERMWebClient.secure.frmSendInvoiceMail.Button1_Click(Object sender, EventArgs e) in D:\XXX\XXXXXXX\secure\frmSendInvoiceMail.aspx.cs:54
   System.Web.UI.WebControls.Button.OnClick(EventArgs e) +118
   System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +112
   System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
   System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
   System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +36
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint

02.11.2010 - 16:37 Uhr

Hi,

okay sorry das hatte ich wirklich übersehen.
Gut ich kann das mit DataTable machen, jedoch kann ich dann ja nicht die _URL auf den Hyperlink schreiben ?!

02.11.2010 - 16:10 Uhr

Die Darstellung der Abfrage ziehe ich mir in die Labels

 <asp:Panel ID="Panel1" runat="server">
        <table cellpadding="0" cellspacing="0" style="width: 738px">
            <tr>
                <td style="width: 24px">
                    &nbsp;</td>
                <td style="width: 123px">
                    <b>Rechnungsnummer</b></td>
                <td style="width: 105px">
                    <strong>Datum</strong></td>
                <td style="width: 149px">
                    <b>Lieferant</b></td>
                <td style="width: 105px">
                    <b>Betrag</b></td>
                <td style="width: 232px">
                    <b>Organisation</b></td>
            </tr>
            <tr>
                <td style="width: 24px">
                    <center>
                        <asp:HyperLink ID="PDFAnzeigen" runat="server" 
                           ImageUrl="~/images/pdf_icon_16.gif">öffnen</asp:HyperLink>
                    </center>
                </td>
                <td style="width: 123px">
                    <asp:Label ID="lbInoviceNumber" runat="server"></asp:Label>
                </td>
                <td style="width: 105px">
                    <asp:Label ID="lbDate" runat="server"></asp:Label>
                </td>
                <td style="width: 149px">
                    <asp:Label ID="lbSupplier" runat="server"></asp:Label>
                </td>
                <td style="width: 105px">
                    <asp:Label ID="lbGrossMount" runat="server"></asp:Label>
                </td>
                <td style="width: 232px">
                    <asp:Label ID="lbOrgName" runat="server"></asp:Label>
                </td>
            </tr>
        </table>
    </asp:Panel>

Das noch als kleiner Hinweis, da ich sonst nicht mit der PROC des _URL im Link befüllen kann.

02.11.2010 - 11:28 Uhr

den 2. Sorry.
Dort wo ich die Rechnungen anhand des DDLSupplier auslese.
genaugenommen das hier :

 SqlCommand sqlCommand = new SqlCommand("SELECT ForeignInvoiceID,InvoiceNumber,SupplierName,InvoiceDate,GrossAmount FROM Asmbl_Invoice where StandardSupplierID = '" + _DDLItem + "'", sqlConnection);
02.11.2010 - 10:53 Uhr

selbst wenn ich die "zwischen Abfrage" ausklammer, und dann debuge, bekomme ich auch nur einen Datensatz angezeigt.
Also müsste es ein Problem mit dem reader der "1. Abfrage" zusammenhängen.

02.11.2010 - 10:42 Uhr

Stimmt die Verbindungen bleiben offen bez. werden in der Abfrage sauber geschlossen.
hmm.... Ich weiss nicht mehr weiter 😦((

02.11.2010 - 10:38 Uhr

Es geht allgemein darum, warum mir nur 1 Datensatz angezeigt wird, wo ich mehrere Datensätze auslese.
Logische erklärung von aequitas war, das ich zwar alle Datensätze einlese, jedoch bei der nächsten Abfrage, innerhalb der 1. Abfrage, meine Daten mit einerm PROC nochmal anreichere, um die _URL.
Dort wird mir nur ein Datensatz zurückgeliefert - was ja auch korrekt ist - jedoch bricht er dann ab, weil er ja einen Datensatz geliefert hat.

Ich muss aber alle Datensätze quasi durchgehen, die vorhanden sind anhand der Abfrage und diese mit der PROC => _URL anreichern !

02.11.2010 - 10:24 Uhr

Ok super danke das ist einleutend

Wie kann ich jedoch die Abfrage dann so hinbekommen, das es funktioniert ??? 😦

02.11.2010 - 10:15 Uhr

Das ist es ja, ich bekomme keine Fehler !
Ich bekomme nur sauber einen Datensatz angezeigt, mehr nicht. Obwohl mit der gleichen Abfrage in Management Studio mehrere Angezeigt werden.
Ich vermute schon die Schleife, das die zu früh zu macht, aber ich peil gerade nicht wodran es liegen könnte.

Wie gesagt keine Fehler, oder Ausnahmen.

02.11.2010 - 09:54 Uhr

Jep die Abfrage läuft sauber im Management Studio !
Dort bekomme ich, wenn vorhanden, mehrere Datensätze zurückgeliefert !