Laden...
Avatar #avatar-2613.jpg
King-Malkav myCSharp.de - Member
Experte Advanced Call Solutions Landau Dabei seit 28.03.2006 264 Beiträge
Benutzerbeschreibung

Forenbeiträge von King-Malkav Ingesamt 264 Beiträge

04.04.2008 - 08:49 Uhr

Hallo,

ich habe mir einen kleinen iTunes Controller geschrieben und nun habe ich folgendes Problem...Ich würde gern über die Tastenkombination STRG + leertaste die Pausenfunktion abrufen und zwar egal ob der Kontroller nun das Aktive Programm ist oder ich gerade im Firefox oder sonst wo bin.

Ist dies einfach umzusetzen und wenn ja, wie?

LG Daniel

26.03.2008 - 16:24 Uhr

Ihr dürft mich blöd schimpfen!!!!

Ich hab die Falsche DB geändert. Visual Studio kopiert ja die DB in das Bin Verzeichnis! Und erst nach dem erneuten kompilieren wird die geänderte Access DB in das Bin Verzeichnis kopiert!

Ich bin so doof!! Zeit nach Hause zu gehen.

Trotzdem danke für den Denkanstoß!

MFG

26.03.2008 - 16:00 Uhr

Hallo King-Malkav,

Wenn ich aber jetzt in meiner Zuordnungstabelle Werte ändere

Wie änderst Du die Werte? In Access direkt? Wenn Du über OLE auf die Datenbank zugreifst, dann kann ich mir gut vorstellen, dass hier das System ein Cache verwendet, wo die "alten" Daten vorgehalten werden.

Wenn Du testweise die Connection nach Änderungen mal schließt und wieder neu aufmachst, werden dann immer noch die inkorrekten Daten angezeigt?

SQLServer arbeitet da sicherlich anders. Insbesondere wenn Du über den SQLConnector im .NET Framework darauf zugreifst. Access hat ja z.B. auch keine Möglichkeit Trigger zu implementieren.

Grüße
Norman-Timo

Die Connection wird ja jedesmal geschlossen und neu geöffnet. Ich habe die Daten direkt in Access geändert, also gab es auch kein Zugriff auf die Datei.

Das ist eine relativ simple Anwendung und ich finde es eigentlich unnötig den SQL2005 Express oder ähnliches deswegen zu installieren...

26.03.2008 - 15:42 Uhr

verwendetes Datenbanksystem: Access2000

Hallo, ich habe folgendes Problem, ich habe eine CheckedListView das ich mit Daten aus einer AccessDB füllen lasse. Je nach Werten in der Tabelle werden die Haken gesetzt. Das funktioniert auch soweit ganz gut. Wenn ich aber jetzt in meiner Zuordnungstabelle Werte ändere, erkennt das mein C# Programm nicht und es werden wieder die gleichen Haken gesetzt. Wenn ich mein Programm neustarte funktioniert es.

Warum wird mein Dataset, mit alten Daten die gar nicht mehr existieren, gefüllt?
Arbeite normalerweiße nur mit MSSQL und nicht mit Access und bin etwas ratlos.

Hier auch noch ein wenig Code:


 private void button2_Click(object sender, EventArgs e)
        {

            lade_zutaten();

            string select = "SELECT ZutatID from t_pizzaordnung where PizzaID = 1";

            OleDbDataAdapter da = new OleDbDataAdapter(select, mycon);
            DataSet ds = new DataSet();

            mycon.Open();
            da.Fill(ds);
            mycon.Close();
            clearclb();
         

            for (int i = 0; i < clb_zutaten.Items.Count; i++)
            {
                DataRowView zutatx = (DataRowView)clb_zutaten.Items[i];
                foreach (DataRow dr in ds.Tables[0].Rows)
                {
                    if (dr["ZutatID"].ToString() == zutatx.Row[0].ToString())
                    {
                        clb_zutaten.SetItemChecked(i, true);
                    }
                    
                        
                    
                }
            }



            
        }

Mein Connectionstring sieht folgendermaßen aus:
OleDbConnection mycon = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=pizzadrive.MDB");

Vielen Dank im voraus...

24.01.2008 - 13:38 Uhr

Danke für die Hilfe, die Webseite läuft und funktionieren tut sie auch noch.

MFG

23.01.2008 - 17:34 Uhr

Hi,

leider hat mein VS 2005 den Namespace System.DirectoryServices nicht.

Ich konnte jetzt auf die schnnelle auch nichts finden, ob was nachinstalliert werden muss. Meine Entwicklungsmaschiene befindet sich nicht in einer Domäne.

Ich habe eine Beispielklasse gefunden, aber auch hier wird der Namespace System.DirectoryServices verwendet, den mir VS anmault...

http://www.snippetcenter.org/de/benutzer-passwort-im-active-directory-aendern-s158.aspx

Was mach ich falsch?

MFG

23.01.2008 - 14:50 Uhr

Ich habe leider nichts passendes Gefunden. Ich muss den User im Active Directory ändern.

MFG

23.01.2008 - 13:39 Uhr

Hi,

ist es möglich mit einer ASP.net Seite oder einem C# Programm das Passwort eines bestimmten Users in der Domäne zu ändern?

Hintergrund ist der.

Wir betreiben einen Web- und Fileserver in einer eigenen Domäne. Jetzt muss es den Usern möglich gemacht werden, mit einer Webseite oder einem Programm das Passwort ihres Accounts zu ändern. Die User existieren in 2 getrennten Domänen und wenn nun in der einen Domäne der User sein Passwort ändern muss (ist Vorgabe), kann dieser User natürlich nicht mehr auf den Fileserver zugreifen, da sein Useraccount ein anderes Passwort hat.

Eine Vertrauensstellung zwischen den Domänen kann nicht hergestellt werden. Früher hatten wir einen Linux Samber Server und da haben die User ihr Passwort einfach mit dem Webmin geändert. Nun brauchen wir sowas für Windowsserver.

Kann jemand helfen?

MFG Daniel

13.09.2007 - 21:19 Uhr

Danke, ich werde es morgen Testen!

MFG Daniel

13.09.2007 - 12:56 Uhr

Hi, ich möchte mir einen Webservice schreiben, der die OnlineIP des Anfragenden Clients ermittelt.

Leider habe ich keine Idee wie ich das realisieren soll. Über einen würde ich mich sehr freuen.

MFG Daniel

21.08.2007 - 16:01 Uhr

Hallo,

ich habe ein kleines Problem mit meinem "Lieblings" Element dem Gridview.

Ich habe ein BoundField das einen Termin hat. Wenn ein Termin eingetragen ist in der DB, soll er das Feld auf Read Only setzen, so das im Edit Modus das Datum nicht mehr geändert werden kann.

Sollte das Datum leer sein, dann muss Read Only auf false gesetzt werden.

Hier mal noch ein wenig Code...

Mein Gridview


<asp:GridView ID="gv_todo" runat="server" CellPadding="4"
                        ForeColor="#333333" 
                        GridLines="None" AutoGenerateColumns="False" 
                        DataKeyNames="IDNR" 
                        EmptyDataText="Es gibt keine Meilensteine für dieses Projekt..." 
                        Width="620px" 
                        OnRowUpdating="gv_todo_RowUpdating" OnRowDataBound="gv_todo_RowDataBound" 
                        OnRowEditing="gv_todo_RowEditing1" OnRowCancelingEdit="gv_todo_RowCancelingEdit">
                        
                        
                        <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                        <RowStyle BackColor="#F7F6F3" CssClass="text2" ForeColor="#333333" />
                        <EditRowStyle BackColor="Yellow" />
                        <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
                        <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
                        <HeaderStyle BackColor="Gray" CssClass="text2" Font-Bold="True" ForeColor="White" />
                        <AlternatingRowStyle BackColor="White" ForeColor="#284775" />
                        
                        
                        <Columns>
                            <asp:TemplateField HeaderText="sdfsd" Visible="False">
                                <ItemTemplate>
                                    <asp:TextBox ID="tb_datum" Text='<%# Eval("Datum") %>' Visible="false" runat="server"></asp:TextBox>
                                </ItemTemplate>
                            </asp:TemplateField>
                             
                             <asp:TemplateField HeaderText="dfsd" Visible="False">
                                <ItemTemplate>
                                    <asp:CheckBox ID="cb_ok" Text='<%# Eval("OK") %>' Visible="false" runat="server" />
                                </ItemTemplate>
                            </asp:TemplateField>
                            
                            <asp:BoundField DataField="Datum" DataFormatString="{0:d}"  HeaderText="Termin" HtmlEncode="False" ApplyFormatInEditMode="True" />
                            <asp:BoundField DataField="Meilenstein" HeaderText="Meilenstein" />
                            <asp:CheckBoxField DataField="OK" HeaderText="Erledigt" />
                            <asp:BoundField DataField="Datumerledigt" HeaderText="Datum" ReadOnly="true" />
                            
                            
                            <asp:TemplateField>
                                
                                
                                <ItemTemplate>
                                    <asp:Button ID="Button4" CommandName="Edit" Text="Edit" Font-Size="8pt" Width="45px"
                                        runat="Server" />
                                </ItemTemplate>
                                <EditItemTemplate>
                                    <asp:Button ID="Button5" CommandName="Update" Text="Update" Font-Size="8pt" Width="45px"
                                        runat="Server" />
                                    <asp:Button ID="Button6" CommandName="Cancel" Text="Cancel" Font-Size="8pt" Width="45px"
                                        runat="Server" />
                                </EditItemTemplate>
                                <ItemStyle VerticalAlign="Top" />
                            </asp:TemplateField>
                        </Columns>
                        
                        
                        <EmptyDataRowStyle CssClass="text2" />
                        
                    </asp:GridView>

Hier noch meine Prüfen Funktion...


protected void gv_todo_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            TextBox datum = e.Row.Cells[0].FindControl("tb_datum") as System.Web.UI.WebControls.TextBox;

            if (datum.Text != string.Empty)
            {
                foreach (TableCell c in e.Row.Cells)
                {
                    e.Row.Cells[2].Enabled = false;
                }
            }

            CheckBox cb = e.Row.Cells[1].FindControl("cb_ok") as System.Web.UI.WebControls.CheckBox;

            if (cb.Text == "True")
            {
                foreach (TableCell c in e.Row.Cells)
                {
                    c.BackColor = System.Drawing.Color.GreenYellow;
                    e.Row.Cells[6].Enabled = false;
                }
            }
        }
    }

Allerdings gelingt es mir nicht, das BoundField Datum auf ReadOnly zu setzen.

Für Hilfe wäre ich sehr Dankbar.

MFG Daniel

18.07.2007 - 07:58 Uhr

Morgen Community,

ich habe ein großes Problem. Wir verwenden einen SQL 2000 Server und ich muss auf diesem Server 1 komplexe Prozedur ausführen, die dann wiederum eine 2. Prozedur aufruft. Da das abarbeiten mind. 5 Minuten oder länger dauert (je nach Datenmenge), führe ich die Prozedur asynchron aus, dass heißt ich versuchen es.

Wenn die Prozedur via Enterprise Manager gestartet wird, läuft diese komplett und fehlerfrei durch. Starte ich die Prozedur über meine ASP.net Seite, bricht sie einfach nach einer kurzen Zeit ab.

Hier mal mein Aufrufcode:


private void startonkz(int UserID)
    {
        sql.statusoutput myoutput = new sql.statusoutput();
        sql mysql = new sql();
        
        SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["Constring"].ConnectionString);
        SqlCommand mycommand = new SqlCommand("p_start", conn);

        mycommand.CommandType = CommandType.StoredProcedure;

        mycommand.Parameters.Add("@userid", SqlDbType.Int).Value = UserID;

        try
        {
            conn.Open();
            IAsyncResult res = mycommand.BeginExecuteNonQuery();

            while (!res.IsCompleted)
            {

                myoutput = mysql.Status(UserID);

                l_status.Text = "Bitte warten...";
                l_details.Text = "Fehlerhafte ONKz: " + myoutput.fehler.ToString();
                l_details2.Text = " Status: " + myoutput.bemerkung;

            }
                      

        }
        catch (SqlException ex)
        {

        }
        finally
        {
            if (myoutput.status == 1)
            {
                conn.Close();
            }
        }
    }

res hat nach 5 sekunden den Status true, warum auch immer behauptet C# das die Prozedur komplett abgelaufen ist.

Weiß jemand Rat?

MFG Daniel

26.06.2007 - 13:53 Uhr

Original von nin
suchst du in der richtigen Spalte (3) ???
ist dort zur Laufzeit wirklich eine "System.Web.UI.WebControls.CheckBox" drin ???

Das Problem ist, dass ich nicht so genau weiß wo ich suchen muss 😉

Das Gridview hat 5 Spalten, wenn ich die Webseite ausführ. in der 4 Spalte ist das Checkbox element.

Da man bei 0 anfängt zu zählen, müsste es 3 sein.

Hier erstelle ich ja das Checkbox element:

<asp:CheckBoxField DataField="OK" HeaderText="OK" SortExpression="OK" />

Ich bin leider nicht so vertraut mit dem Gridview...

MFG

26.06.2007 - 13:35 Uhr

Mhhh,

jetzt bekomme ich eine Nullreferenz...

Ich poste mal mein Gridview Code:



<asp:GridView ID="gv_todo" runat="server" CellPadding="4"
                        ForeColor="#333333" GridLines="None" AutoGenerateColumns="False" DataKeyNames="IDNR" DataSourceID="SqlDataSource1" EmptyDataText="Es gibt keine Meilensteine für dieses Projekt..." Width="620px" OnRowUpdating="gv_todo_RowUpdating" OnRowDataBound="gv_todo_RowDataBound">
                        <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                        <RowStyle BackColor="#F7F6F3" CssClass="text2" ForeColor="#333333" />
                        <EditRowStyle BackColor="#999999" />
                        <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
                        <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
                        <HeaderStyle BackColor="#5D7B9D" CssClass="text2" Font-Bold="True" ForeColor="White" />
                        <AlternatingRowStyle BackColor="White" ForeColor="#284775" />
                        <Columns>
                            <asp:CommandField ShowEditButton="True" >
                                <ItemStyle CssClass="text2" />
                            </asp:CommandField>
                            <asp:BoundField DataField="Datum" DataFormatString="{0:d}" HeaderText="Termin" HtmlEncode="False"
                                SortExpression="Datum" InsertVisible="False" ReadOnly="True" />
                            <asp:BoundField DataField="IDNR" HeaderText="IDNR" InsertVisible="False" ReadOnly="True"
                                SortExpression="IDNR" Visible="False" />
                            <asp:BoundField DataField="ProjektID" HeaderText="ProjektID" SortExpression="ProjektID"
                                Visible="False" />
                            <asp:BoundField DataField="Meilenstein" HeaderText="Meilenstein" SortExpression="Meilenstein" ReadOnly="True" />
                            <asp:BoundField DataField="UserID" HeaderText="UserID" SortExpression="UserID" Visible="False" />
                            <asp:CheckBoxField DataField="OK" HeaderText="OK" SortExpression="OK" />
                            <asp:BoundField DataField="Datumerledigt" HeaderText="Datum" SortExpression="Datumerledigt" DataFormatString="{0:d}" HtmlEncode="False" ReadOnly="true"/>
                        </Columns>
                    </asp:GridView>
                    <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:SQLstring %>"
                        UpdateCommand="UPDATE [t_todo] SET [OK] = @OK, [Datumerledigt] = @Datumerledigt WHERE [IDNR] = @IDNR" DeleteCommand="DELETE FROM [t_todo] WHERE [IDNR] = @IDNR" InsertCommand="INSERT INTO [t_todo] ([ProjektID], [Meilenstein], [Datum], [OK], [UserID], [Datumerledigt]) VALUES (@ProjektID, @Meilenstein, @Datum, @OK, @UserID, @Datumerledigt)" SelectCommand="SELECT * FROM [t_todo] WHERE ([ProjektID] = @ProjektID)">
                        
                        <UpdateParameters>
                            <asp:Parameter Name="ProjektID" Type="Int32" />
                            <asp:Parameter Name="Meilenstein" Type="String" />
                            <asp:Parameter Name="Datum" Type="DateTime" />
                            <asp:Parameter Name="OK" Type="Boolean" />
                            <asp:Parameter Name="UserID" Type="String" />
                            <asp:Parameter Name="Datumerledigt" Type="DateTime" />
                            <asp:Parameter Name="IDNR" Type="Int32" />
                        </UpdateParameters>
                        <DeleteParameters>
                            <asp:Parameter Name="IDNR" Type="Int32" />
                        </DeleteParameters>
                        <SelectParameters>
                            <asp:SessionParameter Name="ProjektID" SessionField="ProjektID" Type="Int32" />
                        </SelectParameters>
                        <InsertParameters>
                            <asp:Parameter Name="ProjektID" Type="Int32" />
                            <asp:Parameter Name="Meilenstein" Type="String" />
                            <asp:Parameter Name="Datum" Type="DateTime" />
                            <asp:Parameter Name="OK" Type="Boolean" />
                            <asp:Parameter Name="UserID" Type="String" />
                            <asp:Parameter Name="Datumerledigt" Type="DateTime" />
                        </InsertParameters>
                       
                    </asp:SqlDataSource>


26.06.2007 - 13:27 Uhr

Hi,

ich weiß im Moment nicht so recht weiter. Ich hab ein Gridview das ich mit Daten füllen lasse. Die Spalten habe ich selbst erstellt und nun gibt es darin eine Checkbox.

Ich möchte den Wert der Checkbox abfragen, nur komme ich im moment nicht weiter...

Hier mein Code...


protected void gv_todo_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            CheckBox cb = e.Row.Cells[3].FindControl("CheckBox1");
            
            
        }
    }

Bekomme immer die Fehlermeldung:
Fehler 1 Der Typ System.Web.UI.Control kann nicht implizit in System.Web.UI.WebControls.CheckBox konvertiert werden. Es ist eine explizite Konvertierung vorhanden. (Fehlt eine Umwandlung?)

Wie komme ich also am einfachsten an den Wert der Checkbox?

MFG Daniel

29.03.2007 - 17:57 Uhr

So, die Datei ist nun wieder auf dem Server.

MFG

28.02.2007 - 15:23 Uhr

Danke, jetzt funktioniert es.

MFG

28.02.2007 - 14:45 Uhr

Nun ja, ich habe versucht das neuste Ajax Paket zu installiern (ASPAJAXExtSetup.msi) und bekomme immer die Meldung, das sich das Paket nicht Remote installieren lässt.

http://www.microsoft.com/downloads/details.aspx?FamilyID=ca9d90fa-e8c9-42e3-aa19-08e2c027f5d6&displaylang=en

oder hab ich das falsche Paket erwischt...eigentlich nicht?!

28.02.2007 - 14:26 Uhr

Gibt es eine Möglichkeit diese zu installieren ohne das msi Paket? Ich habe Adminrechte auf dem Server. Allerdings ist es nicht so einfach, mal schnell an die Maschine zu laufen und das MSI Paket lokal auszuführen.

Gibt es vergleichbare alternativen zu dem Framework? Ich brauch das eigentlich nur für ein paar optische Spielereien. Später vielleicht für mehr...

MFG

28.02.2007 - 14:17 Uhr

Hi,

habe Probleme mit dem AJAX Framework. Habe mir das AJAX FRamework für das VS 2005 geladen und installiert. Wenn ich jetzt eine einfache Ajax Seite erstell und diese lokal auf meinem IIS ausführe, dann klappt das ganze ohne Probleme.

Wenn ich die Webseite auf meinen Win2003 Server kopieren, dann kann ich die Seite nicht aufrufen, da der IIS mir sagt das einige Assembly Verweiße nicht stimmen.

Dann habe ich versucht das Framework auf den 2003 Server zu installieren, allerdings habe ich nur einen Remotezugriff und über Remote kann man das Framework nicht installieren.

Genügt es nicht die Ajax.dll im Bin Verzeichnis auf den Webserver zu schieben? Wie kann ich mein Problem lösen?

MFG

22.02.2007 - 16:37 Uhr

Danke für den Hinweiß. Es lag scheinbar an der Fehlermeldung die mir die olle Adabas DB zurück bringt. hab die Exceptionmeldung abgeändert auf e.Message.ToString() und nun klappt das ganze auch.

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

/// <summary>
/// Löst einen Alert per Javascript aus
/// </summary>
    public class Alert
    {
        public Alert() { }
        public void Show(string message)
        {
            string script = "<script type=\"text/javascript\">alert('" + message + "');</script>";
            Page page = HttpContext.Current.CurrentHandler as Page;
            page.ClientScript.RegisterStartupScript(typeof(Alert), "alert", script);
        }
    } 

Trotzdem danke.

MFG

22.02.2007 - 11:17 Uhr

Ich hab folgendes Problem. Meine SQL Abfragen habe ich alle in eine eigene Klasse geschrieben und Public gemacht, damit ich sie von meiner eigentlichen Webanwendung aufrufen kann. Das ganze hat nur ein Problem. Sollte ich eine Exeption bekommen, geht die Exception Nachricht verloren. Um dies zu verhindern habe ich mir eine Hilfsklasse zusammengebastelt. Diese erzeugt ein Javascript alert und soll die Exceptionmeldung ausgeben. Die Klasse an sich funktioniert, nur wenn ich sie über die SQL Klasse aufrufe bekomme ich kein Alert ausgegeben.

Ich kenn mich in Javascript auch nicht wirklich aus, währe nett wenn mir jemand helfen könnte.

Hier mal meine SQL KLasse


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

/// <summary>
/// Zusammenfassungsbeschreibung für sql
/// </summary>
public class sql
{
	public sql()
	{
		//
		// TODO: Konstruktorlogik hier hinzufügen
		//
	}

public int buttonsidnrkey(string table)
     {
        int key = 0;

        OdbcConnection conn = new OdbcConnection(ConfigurationManager.ConnectionStrings["ADAstring"].ConnectionString);
        OdbcCommand cmd = new OdbcCommand("{call ZEITEN.COUNT.GETNEXTCOUNTER (?,?)}", conn);
        cmd.CommandType = CommandType.StoredProcedure;

        cmd.Parameters.Add("@NAME", OdbcType.VarChar, 20).Value = table;
        cmd.Parameters.Add("@ZAEHLER", OdbcType.Int).Direction = ParameterDirection.Output;
        
        try
        {
            conn.Open();
            cmd.ExecuteNonQuery();
            
        }
        catch(OdbcException e)
        {
            key = -1;
            Alert javascript = new Alert();
            javascript.Show(e.ToString());
        }
            conn.Close();

            key = Convert.ToInt16(cmd.Parameters["@ZAEHLER"].Value);

     
       return key;
    
    }

und nun meine Hilfsklasse für das Javascript

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

/// <summary>
/// Löst einen Alert per Javascript aus
/// </summary>
    public class Alert
    {
        public Alert() { }
        public void Show(string message)
        {
            string repMessage = message.Replace("'", "\\'");
            string script = "<script type=\"text/javascript\">alert('" + repMessage + "');</script>";

            Page page = HttpContext.Current.CurrentHandler as Page;
            if (page != null && !page.ClientScript.IsClientScriptBlockRegistered("alert"))
            {
                page.ClientScript.RegisterClientScriptBlock(typeof(Alert), "alert", script);
            }
        }
    } 

Wäre nett wenn mir jemand helfen könnte oder einen anderen Weg zeigen könnte.

MFG

05.02.2007 - 16:13 Uhr

Original von the_lmich
Hi King-Malkav,

also wenn die DB performanz-seitig nichts hergibt, würde ich die Buttons beim Anmelden in eine Datenstruktur laden. Falls die Buttons für alle User identisch sind, kannst Du sie ja vielleicht auch im Application-Scope ablegen und die Sessions entlasten. Ggf. kannst Du so auch Caching-Mechanismen ausnutzen.

Hth,
🙂 Torsten

Buttons sind nicht für jeden gleich, da sie je nach gruppen bzw. personen recht erstellt werden. In der Regel sind es aber max. 10 Buttons für einen User.

Ich habe das ganze jetzt über einen Select IN gelöst, somit ist die Ergebnismenge so klein wie möglich. Nächste woche wird ein Lasttest gemacht, dass Problem liegt an der Datenbank, da diese für mehrere Anwendungen herhalten muss und ich sie jetzt auch noch mitbenutzen soll. Na ja, wir werden sehen...

05.02.2007 - 12:49 Uhr

Ich habe eine Webanwendung, diese erstellt zur Zeiterfassung mehrere Buttons dynamisch. Der Support kann beliebig neue Buttons erstellen, die dann die User angezeigt bekommen.

Meine Frage ist eigentlich die:
Ich muss leider eine Adabas Datenbank nutzen in der div. Informationen über die Buttons gespeichert sind, wie z.B. Name, Tooltip etc...

Ist es Sinnvoller die Buttons einmal beim anmelden auszulesen, in ein Dataset zu schreiben und danach dieses in die Session schreiben um die Buttons nach dem Postback erneut aus den Sessioninformationen zu erstellen oder soll ich lieber nach jedem Postback die Datenbank erneut befragen. Die Dynamisch erzeugten Buttons müssen ja nach jedem Postback wieder erstellt werden.

Die Anwendung soll von 160 Leuten benutzt werden. Die Adabas Datenbank ist auch nicht unbedingt die schnellste. Der Webserver ist recht aktuell und eigentlich gut bestückt.

MFG

28.01.2007 - 21:05 Uhr

Hi, das ist mein erstes Programm mit C#. Eigentlich schreibe ich ASP.net Apps.
Deshalb nicht in der Luft zerreisen. 😉

Das ganze ist auch noch nicht fertig und der Code ist mehr als Optimal. Im Moment lasse ich Grafiken ein oder ausblenden. Das kann man bestimmt auch schöner lösen.

Auf dem Screenshot ist es 21:23:36

ToDo:
Ins Systray legen
Verkleinern
Autostart Option
On Top Funktion
Transparenz

Wer die Uhr mal testen will:
http://danielkrieger.de/clock.exe

Tipps und Kritik sind gerne willkommen.

MFG

23.01.2007 - 13:23 Uhr

Hi,

ich soll mit meiner Webanwendung eine Adabas DB zur Authentifizierung nutzen. Jetzt ist meine Frage, wie zum Henker kann ich die Adabas DB anschprechen? Ich habe den ADABAS Treiber installiert und ODBC in meiner Anwendung eingebunden.

Hier mal etwas Beispielcode von einer Testanwendung. Die Connection steht in der web.config

public class sql
{
	public sql()
	{
		//
		// TODO: Konstruktorlogik hier hinzufügen
		//
	}

    public DataSet auslesen()
    {
        string strSQL = "select * from button";

        OdbcConnection conn = new OdbcConnection(ConfigurationManager.ConnectionStrings["ConString"].ConnectionString);

        DataSet ds = new DataSet();
        OdbcDataAdapter cmd = new OdbcDataAdapter(strSQL, conn);

        cmd.Fill(ds);
        conn.Close();

        return ds;
    }
}

<connectionStrings>
    <add name="ConString" connectionString="Driver={SQL Server};Server=YOUR-31BF457DCA;UID=test;PWD=;Database=dynbuttons"/>
</connectionStrings>

MIt diesen Einstellungen funktioniert der Zugriff mittels ODBC auf eine MS SQL Datenbank. Wie muss ich die umschreiben um auf die "tolle" Adabas DB zugreifen zu können?

Leider kann mir keiner meiner Kollegen helfen.

MFG

22.01.2007 - 16:03 Uhr

Original von feadur

  
        l_test.Text = "ID=" + ((Button)sender).ID;  
  

Danke, dass war es.

MFG

22.01.2007 - 15:45 Uhr

Hi,

ich habe ein kleines Problem. Ich habe eine kleine Testseite erstellen. Dort kann ich die anzahl der gewünschten Buttons eintragen. Diese werden dann auch dynamisch erstellt. Beim klicken auf den Button wird ein Text über mein Label ausgegeben. Soweit so gut, aber ich würde gern die Button ID übergeben und bekomme es einfach nicht hin. Hier mal den Code der Testseite:


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

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Page.IsPostBack)
        {
            Buttonserzeugen(Convert.ToByte(this.t_anzahl.Text));
        }    
    }

    private void Buttonserzeugen(byte Anzahl)
    {
        this.p_buttons.Controls.Clear();

        for (byte i = 1; i <= Anzahl; i++)
        {
            Label l1 = new Label();
            l1.ID = "Button" + i;
            l1.Text = i + ". Button";
            this.p_buttons.Controls.Add(l1);

            Button b1 = new Button();
            b1.Click += new EventHandler(b1_Click);
            b1.ID = "B" + i;
            b1.Text = "Klick mich " + i;
            this.p_buttons.Controls.Add(b1);

            LiteralControl l3 = new LiteralControl();
            l3.ID = "Lit" + i;
            l3.Text = "<br>";
            this.p_buttons.Controls.Add(l3);
        }

    }

    void b1_Click(object sender, EventArgs e)
    {
        l_test.Text = "Hallo Welt ";
    }

    protected void b_go_Click(object sender, EventArgs e)
    {
        Buttonserzeugen(Convert.ToByte(this.t_anzahl.Text));
    }

}

Kann jemand helfen?

MFG

12.12.2006 - 09:56 Uhr

Original von FZelle
In die Doku schauen.

Danke für die Hilfreiche Antwort, aber diese glorreiche Idee hatte ich schon und ich hab nichts gefunden.

MFG

12.12.2006 - 09:13 Uhr

Original von FZelle
Vielleicht solltest Du Dir das Programmiermodell von ASP.NET nochmal anschauen.

Und Session, Application und Cache werden in jeder einsteigerlektüre beschrieben.

  
Session["MeinDS"] = myapps;  
...  
if( Session.Contains("MeinDS") )  
  myapps = (DataSet)Session["MeinDS"];  
  

Hi,

Session.Contains existiert nicht, Wie kann ich überprüfen ob ein Objekt in der Session existiert oder nicht?

Fehler	1	System.Web.SessionState.HttpSessionState enthält keine Definition für Contains.	c:\inetpub\wwwroot\BetsandBeta\details.aspx.cs	324	21	http://localhost/BetsandBeta/

11.12.2006 - 09:47 Uhr

Es sind max. 3-4 einträge pro Tabelle. Könnte ich es auch mit Cookies lösen oder ist das umständlich?

Wie schreib ich den Inhalt eines Datasets in die Session?

MFG

11.12.2006 - 09:30 Uhr

Original von FZelle
Und wann füllst Du das DS Global?

Du weisst, das in einer ASP.NET Anwendung Daten zwischen 2 Seitenaufrufen
nicht übertragen werden?
Die sind einfach weg.

Ok, ich habe das Dataset nochmal neu füllen lassen und jetzt kann ich einen neuen Datensatz hinzufügen, allerdings ist dieser direkt weg nach dem nächsten postback.

Wie kann ich das Problem lösen? Ich möchte die Daten nicht direkt in die Datenbank schreiben.

MFG

11.12.2006 - 09:05 Uhr

Ich erzeuge das Dataset global und fülle es dann über eine Funktion...

DataSet myapps = new DataSet();

        
        // Apps binden
             
            appsauslesen(HID);
            lb_apps.DataSource = myapps.Tables[0].DefaultView;
            lb_apps.DataValueField = "app";
            lb_apps.DataBind();



private void appsauslesen(string HID)
    {
        string sqlstring = "SELECT * FROM t_apps WHERE HardwareID = '" + HID + "'";
        
        SqlDataAdapter da = new SqlDataAdapter(sqlstring, sqlcon1);
        
        try
        {
            sqlcon1.Open();
            da.Fill(myapps, "apps");
        }
        catch (SqlException Ex)
        {
            l_status.Text = Ex.Message.ToString();
        }

        finally
        {
            sqlcon1.Close();
        }
        
    }

MFG

09.12.2006 - 16:13 Uhr

Original von FZelle
Und was sagt dein Debugger zu der Zeile?

Der sagt, das ich erst wieder am Montag nachschauen kann, da mein neuer Rechner noch nicht eingerichtet ist.

MFG

08.12.2006 - 15:24 Uhr

@ FZelle

Zeile 321 ist diese:

DataRow dr = dt.NewRow();

wenn ich vorher schreibe DataRow dr = new DataRow() bekomm ich die Meldung das ich new nicht verwenden darf, wegen den Sicherheitseinstellungen. Das Sagt mir aber nicht wirklich was.

@ juetho

Die Tabelle hat 2 Spalten:

IDNR = Key/autowert
apps = varchar

Aber die Seite kommt ja nicht so weit, es bleibt ja schon in Zeile 321 stehen.

MFG

08.12.2006 - 13:46 Uhr

Hi ich habe ein Problem, ich kann keine Datensätze an ein Dataset anfügen. Ich möchte die Daten nämlich nicht sofort in die Datenbank schreiben, sondern erst später, wenn man bestätigt das man die Ergänzungen hinzufügen möchte.


DataTable dt = myapps.Tables["test"];
        DataRow dr = dt.NewRow();
        dr["App"] = t_apps.Text.ToString();
        dt.Rows.Add(dr);
        lb_apps.DataBind();

Bekomm immer folgende Fehlermeldung:

System.NullReferenceException wurde nicht von Benutzercode behandelt.
Message="Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt."
Source="App_Web_1iliwdqq"
StackTrace:
bei neueHardware_Beta.appsedit() in c:\Inetpub\wwwroot\BetsandBeta\details.aspx.cs:Zeile 321.
bei neueHardware_Beta.b_appsplus_Click(Object sender, EventArgs e) in c:\Inetpub\wwwroot\BetsandBeta\details.aspx.cs:Zeile 316.
bei System.Web.UI.WebControls.Button.OnClick(EventArgs e)
bei System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument)
bei System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
bei System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
bei System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
bei System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

Laut Buch ist aber mein Code richtig. Kann jemand helfen?

MFG

29.11.2006 - 16:06 Uhr

Habe das Problem selbst gelöst...weiß zwar nicht ob es die beste Lösung aber es funktioniert.

Und zwar kann man im ASP.net Code über <asp:Griedview DataKeyNames="blabla" ... > den Wert festlegen, dann funktioniert das ganze.

MFG

29.11.2006 - 15:05 Uhr

Sorry, hab ich vergessen zu posten:

Bevor die ausgewählten Datenschlüssel abgerufen werden können, müssen Datenschlüssel für GridView "gv_seriennummer" angegeben werden. Geben Sie die Datenschlüssel mithilfe der DataKeyNames-Eigenschaft an.

Ich habe versucht es mittels diesem Code zuzuweisen:

gv_seriennummer.DataKeyNames.SetValue("HardwareID");

Das funktioniert aber auch nicht...

29.11.2006 - 14:36 Uhr

Hi,

also beim GridViewkann man ja angeben AutoGenerateSelect Button. Und darum geht es mir. Mit dem Code oben fülle ich mein Gridview, allerdings funktioniert der Select, das Paging und das Sorting nicht. Ich bekomme immer eine Fehlermeldung.

29.11.2006 - 11:47 Uhr

Ich habe ein Dataset voller daten und dieses möchte ich mittels Gridview dastellen. Soweit kein Problem, allerdings funktioniert das Selectieren eines Datensatzes nicht.

Er makriert zwar den Datensatz, ließt aber die Werte nicht aus.


 protected void b_suche_Click(object sender, EventArgs e)
    {
        string sqlstring = "SELECT * FROM t_hardware WHERE Seriennummer LIKE '%'+ @SN +'%'";
        SqlDataAdapter mydataadapter = new SqlDataAdapter(sqlstring, sqlcon1);
        DataSet ds = new DataSet();
        mydataadapter.SelectCommand.Parameters.Add("@SN", SqlDbType.VarChar, 50).Value = t_suche.Text.ToString();

        try
        {
            sqlcon1.Open();
            mydataadapter.Fill(ds,"Test");
            gv_seriennummer.DataSource = ds;
            gv_seriennummer.DataBind();
            
        }
        catch (SqlException Ex)
        {
            l_status.Text = Ex.Message.ToString();
        }

        finally
        {
            sqlcon1.Close();
        }

    }

Wie kann ich dem Gridview sagen, welchen Wert es verwenden soll. Mein tooles Buch verweißt mich auf den Assistenten...

22.11.2006 - 01:14 Uhr

@ in Trance...

Die haben einen Packt mit dem Teufel 😉

666GB Traffic / Monat

LoL

21.11.2006 - 01:36 Uhr

So als allgemeiner Tipp:
Centron ist sehr flexibel, was das aushandeln spezieller Pakete angeht. Zudem gibt es hier im Board nen Code, womit man den Preis des Dotnet4all Pakets drücken kann.
Nach knapp 3 Wochen bei Centron kann ich nur eins sagen: Super Support! Der Live-Chat mit den Supportmitarbeitern ist klasse und wie schon Waschbecken geschrieben hat, selbst nach 18 Uhr wird von der Technik noch schell reagiert. Änderungen, wie zum Beispiel das ändern der Datenbank von SQL Server 2000 auf SQL Server 2005, wurden Problemlos, schnell und kostenlos erledigt.

MFG

13.11.2006 - 18:39 Uhr

Hi,

ich verwende Visual Studio 2005 und somit .net 2.0. In der Designansicht stimmt es. Im IE und Firefox wird es falsch angezeigt. Hab das Problem jetzt gelöst in dem ich aus den ASP Panels ein HTML Div gemacht habe. Nun wird es in sämtlichen Browsern korrekt angezeigt.

Dachte nur das ich vielleicht falschen Code hätte...dem scheint ja nicht so zu sein.

MFG

13.11.2006 - 14:54 Uhr

Arrrgg... ich dreh noch durch. Was zum Geier mach ich falsch?

Ich hab mir Pannels angelegt und die Steuerelemente und Tabellen in den Pannels erstellt. Dummerweise ist das Format komplett verschoben...


<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="neueHardwareBeta.aspx.cs" Inherits="neueHardware_Beta" Title="Untitled Page" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
    <br />
    <br />
    &nbsp;<asp:Label ID="Label2" runat="server" Text="Grundangaben"></asp:Label>
    <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Show / Hide" />
    <br />
    <hr />
    <asp:Panel ID="Panel1" runat="server" Height="50px" Width="664px" Wrap="False">
        <table style="width: 664px; table-layout: auto;">
            <tr>
                <td style="width: auto; table-layout: auto; height: 50px;">
                    Seriennummer / ServiceID:<br />
    <asp:TextBox ID="t_Seriennummer" runat="server" Height="16px" Width="216px"></asp:TextBox><br />
                </td>
                <td style="width: 329px; height: 50px;">
                    TelekomID:<br />
    <asp:TextBox ID="t_TNummer" runat="server" Height="16px" Width="216px"></asp:TextBox></td>
                
            </tr>
            </table>
            
            <table style="width: 664px; table-layout: auto;">
            <tr>
            <td style="width: auto; table-layout: auto; height: 14px;">
                Hersteller:<br />
                <asp:DropDownList ID="DropDownList1" runat="server" Width="168px">
                </asp:DropDownList></td>
            
            <td style="width: auto; table-layout: auto; height: 14px;">
                Hardwaretyp:<br />
                <asp:DropDownList ID="dd_Typ" runat="server" Width="168px">
                </asp:DropDownList>
                <asp:Button ID="Button3" runat="server" Text=" + " /></td>
            
            <td style="width: auto; table-layout: auto; height: 14px;">
                Modell:<br />
                <asp:DropDownList ID="dd_Modell" runat="server" Width="168px">
                </asp:DropDownList>&nbsp;<asp:Button ID="b_modell" runat="server" Text=" + " /></td>
            </tr>
        </table>
        <br />
        
    </asp:Panel>
    <br />
    
    <asp:Label ID="Label11" runat="server" Text="Zusätzliche Angaben"></asp:Label>
    <asp:Button ID="Button2" runat="server" Text="Show / Hide" OnClick="Button2_Click1"  /><br />
    <hr />
    
    <asp:Panel ID="Panel2" runat="server" Height="50px" Width="664px" Wrap="False">
    
    <table style="width: 664px; table-layout: auto;">
    <tr>
            <td style="width: 326px; table-layout: auto; height: 15px; vertical-align: top;">
                Bemerkungen:<br />
            <asp:TextBox ID="TextBox2" runat="server" Height="100px" MaxLength="300" TextMode="MultiLine"
            Width="300px"></asp:TextBox>         
            </td>
            
            <td style="width: auto; table-layout: auto; height: 15px; vertical-align: top;">
                Position im Rack:<br />
    <asp:TextBox ID="t_rack" runat="server" Width="24px"></asp:TextBox></td>
    </tr>
    </table>
    </asp:Panel>

</asp:Content>


Was mach ich falsch?

13.11.2006 - 11:37 Uhr

Original von .Kai

Original von King-Malkav
Ja das weiß ich, ich will aber die Elemete ausblenden so wie bei der Windowssuche...

Der Inhalt unter dem Element soll dann hochrutschen...

Je nach Anordnung rutschen die restlichen Elemente nach oben, wenn eine Element ausgeblendet wird.

Wenn Du das ganze allerdings ohne PostBack durchführen möchtest, musst Du Dich ein wenig mit JavaScript auseinander setzen.

Ein Postback ist schon OK, damit kann ich leben. Währe es also am geschicktesten die Steuerelemente in ein Div zu packen und dieses dann auszublenden bzw. einblenden?

MFG

13.11.2006 - 11:00 Uhr

Original von GarlandGreene
die meisten Serversteuerelemente lassen sich über die Visible-Eigenschaft ein- und ausblenden. Für den Zugriff auf das Element muss es sich innerhalb der FORM-Tags der ASPX-Seite befinden und das Attribut

runat="server"  

haben.

Ja das weiß ich, ich will aber die Elemete ausblenden so wie bei der Windowssuche...

Der Inhalt unter dem Element soll dann hochrutschen...

13.11.2006 - 10:52 Uhr

Hi ich hab ein kleines Problem. Gibt es die Möglichkeit, dass ich Steuerelemente die ich nicht benötige ausblenden lasse? Also zum Beispiel wie bei Windows wo man ein Button klickt und die nicht benötigten Funktionen werden dann Ausgeblendet?

Gibt es da eine einfache Möglichkeit?
Oder wie könnte ich das Problem sonnst lösen?

Evtl. mit einem Div Arbeiten und das Ausblenden?

MFG

08.11.2006 - 17:53 Uhr

Hat seinen Grund.
Bei uns in der Firma darf an normalen Arbeitsplatz PCs keine Software installiert werden, die nicht geprüft wurde. Das schließt Microsoftprodukte wie das .Net Framework 2.0 nicht aus. Diese Prüfung kostet unnötig Geld. Ergo Webanwendung. Zudem wird die Anwendung auf mehreren PCs benötigt, aber nur 1 max. 2 Personen werden das Programm bedienen.

MFG Daniel

08.11.2006 - 17:42 Uhr

Original von frisch
Hallo King-Malkav,

auf WebEbene siehts da kritisch aus, du könntest natürlich einen Select-Button zum wählen der Zeilen verwenden und dann auf OnSelectedIndexChanged zugreifen oder du machst dir einen Command-Button mit selbstdefiniertem command und verwendest dann OnRowcommand. In der Funktion fängst du dann das Command ab.

Klingt kompliziert...

Die Sache ist so, man muss einen Datensatz im Gridview auswählen. Dann hole ich mir mittels SelectedValue die ID Nummer des Eintrags, damit ich diese einem anderen Datensatz in meiner DB zuordnen kann. Ich wollte einfach abfangen, dass man den Zordnen Button drückt bevor man einen Datensatz ausgewählt hat.

Die Anwendung verwendet später nur eine Person. Jetzt ist halt die Frage, da ich eh schon leicht in verzug bin, ob sich der Aufwand dafür lohnt.
Oder gibts dafür noch eine einfachere Lösung, die ich vielleicht übersehen hab.

MFG