Laden...
B
Belzaharas myCSharp.de - Member
Student / Bürosklave Aachen Dabei seit 20.05.2008 46 Beiträge
Benutzerbeschreibung

Forenbeiträge von Belzaharas Ingesamt 46 Beiträge

26.05.2010 - 15:55 Uhr

Hallo frisch,

also ich hab den Timeout jetzt auf 60 stehen und damit bisher gute Ergebnisse erzielt. Sollte das aber nicht auf Dauer helfen, werd ich deinen Tipp mit dem Datareader mal versuchen.

Danke nochmals

Gruß

26.05.2010 - 14:38 Uhr

Hallo Belzaharas,

im SQL Management Studio hast du für gewöhnlich die Verbindung schon offen. Mittels SqlConnection baut sich diese aber erst auf. Setze mal vor conn.Open den conn.ConnectionTimeout hochzusetzen und schau, was passiert.

Danke für den Tipp, aber ConnectionTimeout ist doch ein schreibgeschützter Wert, oder übersehe ich da etwas?

Edit: Der momentane Wert liegt bei 15

Edit2: Ich hab grad gesehen, dass man den Timeout im Connstring mit angibt, habs geändert und versuch das nun mal mit dem neuen Wert 30

Edit3: Okay, auch mit dem neuen Wert kriege ich Timeouts bei :"anzahl = da.Fill(ds, "Sqldaten");"

Fehlermeldung: Timeout ist abgelaufen. Das Zeitlimit wurde vor dem Beenden des Vorgangs überschritten oder der Server reagiert nicht

26.05.2010 - 14:22 Uhr

Verwendet wird ein MS SQL Server.

Ich habe folgendes Statement:


SELECT XXASLAuf.TourNr
FROM XXASLAuf where XXASLAuf.FFNr = '1000001' and XXASLAuf.TourNr > 0 AND ((XXASLAuf.BelVonDat>='19.05.2010 00:00:00' and XXASLAuf.BelVonDat<='19.05.2010 23:59:59') OR (XXASLAuf.EntVonDat>='19.05.2010 00:00:00' and XXASLAuf.EntVonDat<='19.05.2010 23:59:59')) 
GROUP BY XXASLAuf.TourNr

Dies wird in einem SQL Manager innerhalb von 2 Sekunden ausgeführt. Frage ich das gleiche Querry nun so ab:

private System.Data.DataTable getTable(string qry, string connstr)
        {
            SqlConnection conn = new SqlConnection(connstr); ;
            SqlCommand cmd = new SqlCommand(qry, conn);
            SqlDataAdapter da = new SqlDataAdapter(cmd);
            SqlCommandBuilder cb = new SqlCommandBuilder(da);
            DataSet ds = new DataSet();
            int anzahl = 0;
 
            conn.Open();
            anzahl = da.Fill(ds, "Sqldaten");
 
            conn.Close();
            return ds.Tables["Sqldaten"];
        }
 

Bekomme ich in 90% der Fälle einen Timeout.

Nun bin ich ratlos, woran das liegen kann, denn bisher hatte ich solche Probleme nie mit dem oben angegebenen Code.

Bin für jede Hilfestellung dankbar.

Gruß

28.01.2010 - 00:54 Uhr

Okay, das war noch nicht ganz das was ich gesucht habe.

Als alternative is mir eingefallen, dass man alle fuer mich relevanten PLZ in eine nxn Matriz schreiben kann, oben und linsk jeweils die Plz und dazweischen die entfernung der jeweiligen Postleitzahlen. Hab da mal nen Programm von Map&Guide fuer gesehen, weiss aber nichtmehr wie das heisst.

Hat da jemand ne Idee? Weil ich denke, dass waere kostenguenstiger als nen MapServer.

Gruß

22.01.2010 - 13:05 Uhr

Danke Florian,

ich schau mir den MS-Server mal an.

Was ich mit den Zugriffen bei Google Maps meinte, unser Netzwerk ist nicht das schnellste 😉 Daher faellt das ansich flach, da zu langsam auf Dauer ^^

22.01.2010 - 12:27 Uhr

Hallo,

ich bin auf der Suche nach einem Mapserver oder einer ähnlichen Lösung.

Worum es geht:

Ich habe in einer Datenbank chronologisch geoordnete Datensätze, die jeweils eine GPS-Koordinate haben. Nun werte ich das alles aus, und haette gern noch die theoretischen Soll-KM. Bisher kann ich das nur ueber den Luftlinienansatz machen, was ja recht ungenau ist.
Also suche ich eine application, die ich mit geokoordinaten füttern kann und dann möglichst realistische Strassenkilometer zurueck bekomme.

Hab im Web bisher immer nur applications fuer webserver etc. gefunden.

Kennt da irgendeiner einen moeglichst guenstigen Mapserver oder vergleichbare Lösungen?

Denke so Sachen wie Google Maps fallen raus, da ich das Programm fuer ein Unternehmen entwickel und es da schonmal zu vielen Anfragen am Tag kommen kann.

Gruß und danke fuer jede Hilfe

17.12.2009 - 11:35 Uhr

Danke erstmal, ich werd mir das mal genauer anschaun 😃

16.12.2009 - 23:31 Uhr

Hallo,

Ich möchte folgendes realisieren:

Mein PC hat eine Anwendung laufen und ist normalerweise gesperrt (ueber str+alt+entf -> Computer sperren, Windows XP). Wenn nun ein Fehler auftritt, wird der Rechner manuell entsperrt und das Programm, bzw der Rechner neu gestartet.

Nun starte ich den Rechner aber nicht immer selber neu und die anderen Leute vergessen immer zu schauen ob Fehlermeldungen angezeigt werden, bzw. welche etc.

Also suche ich eine Möglichkeit, einen Screenshot zu machen, sobald der PC entsperrt wird. Den Screenshot zu machen ist kein Problem, nur die Abfrage ob der PC gesperrt oder entsperrt ist, klappt nicht. Mir faellt dazu leider nichts ein und suchen hat mir auch net geholfen.

Ist sowas machbar? Wäre für jede Idee dankbar.

Gruß

12.11.2009 - 13:03 Uhr

Hallo red_dragon69

Ich habe die Darstellung nun erst einmal mit Google Earth umgesetzt und es laeuft soweit auch wie geplant.

Denke ich werde bei der Lösung bleiben, da diese ja "sehr" kostengünstig ist.

Danke fuer die Hilfe.

Gruß
Belzaharas

12.11.2009 - 11:41 Uhr

Hallo red_dragon69,

das hiesse dann aber im Umkehrschluss, dass ich auf jedem PC, auf dem diese Anwendung laufen soll, Google Earth installieren müsste, oder?

Also als Hintergrund noch:

Wir zeichnen hier Geokoordinaten + andere Daten von Fahrzeugen auf.
Diese werden in einer DB gespeichert. Nun soll es einer belioebigen Anzahl an Usern möglich sein, über ein Programm (das steht schon) diese Daten abzufragen und auszuwerten.
Wenn man nun sieht, dass die Tour laenger gedauert hat als geplant, soll die Kartendarstellung aufzeigen koennen, ob der Fahrer Umwege gefahren ist.

12.11.2009 - 10:49 Uhr

Hallo,

ich hab in einem Programm eine Liste von Geokoordinaten (~1000), die fuer jeden Aufruf anders sein koennen.
Nun suche ich nach einer Möglichkeit diese auf einer Karte zu visualisieren.

Ich habe schon ein gegoogelt aber keinen brauchbaren Anstaz gefunden.

Optimal waere natuerlich eine kostenlose Lösung. Alternativ schau ich mir auch gerne Mapserver an (hab bei google nur den von map&guide gefunden, der nicht webbasiert ist).

Das Programm soll lokal auf den Rechnern laufen und evtl. die Kartendaten von einem Server beziehen. Also keine Webapplikation.

Hoffe ich hab nichts vergessen.

Danke schonmal für Hinweise/Vorschläge

Gruß

21.01.2009 - 16:31 Uhr

Keiner mehr irgendeinen Link oder sonstige Hilfestellung?
Krieg langsam magengeschwüre mit dem mist... irgendwie ist bei dem thema das internet sehr unergiebig.

Danke schonmal wieder im vorraus.

14.01.2009 - 11:58 Uhr

Hallo Svenson, Herbivore

also ansich sollte es ueber die COM Schnittstelle laufen, da ich nur auf eine Seite zugriff habe.
Anhand eines AT Befehsl wird idr der Datentransfer ausgelöst.

Kann ich die Verbdinung auch mit RAS realisieren, wenn ich nur auf eines der Geräte Zugriff habe?
Habe schon ein wenig im Internet gestöbert bin aber leider über RAS verbindungen net so schlau geworden, bzw hab ich oft was von Software installieren gelesen.

Bei der Empfangsstelle handelt es sich nur um eine kleine Box die Daten aufzeichnet und via GSM versenden kann, also da steckt kein PC/server etc. dahinter, also kann ich da keine wirkliche Software aufspielen.

Bin für jeden weiteren Tipp Dankbar, denn momentan seh ich den Wald vor lauter Bäumen nicht.

07.01.2009 - 14:08 Uhr

Hallo,

folgendes Problem:

Ich habe am PC ein gms moden angeschlossen ueber den com1 port.
Nun moechte ich diverse befehle an ein anderes gerät schicken (sollte mit Joetempes template funktionieren, warte noch aufs moden, daher kann ichs nicht direkt testen).

Nun soll ein Befehl gesendet werden, der einen Dateiversand der gegenstelle auslöst. Nun meine frage: Wie kann ich diesen annehmen und in einen bestimmten Ordner legen? Es handelt sich dabei um binär datein. Mit der Read anweisung komme ich da denke ich nicht weiter, oder?

Bin für jeden Lektürentipp dankbar.

Im HyperTerminal klappt alles wunderbar und da oeffnet sich dann ja dieses Dateiempfangsfenster.

laeuft glaube ich da ueber ein ZMprotokoll, bin mir da aber nich 100% sicher.

Danke schonmal im vorraus

22.10.2008 - 21:57 Uhr

@haarrrgh
werd ich mal testen, sobald die EDV mir ne Datenbank / Tabelle eingerichtet hat und ich damit Zugangsdaten fuern Server kriege 😉

19.10.2008 - 23:57 Uhr

@haarrrgh
die haben alle leider keine unique identifier, also kann ich das darueber nicht abfragen, die haben nur einzigartige eintraege in verbindung mit zeit und id. Da es mehrere Datenbanken sind, von ca 80 verschiedenen einheiten. jede einheit speichert immer gpstime, ihre eigene id und weitere relevante datensaetze.

@berndffm
Also es sind halt ne gpstime und ne 10stellige einheitenid.
Serverseitig kann ich da leider nix machen, da unsere EDV sehr, sagen wir spiessig ist. Bin schon froh, dass ich von denen ne DB kriege... ist halt tochterfirma wo ich bin, und edv bei der mutter... da isses nicht immer so leicht, und SP darf ich da ers recht net machen.

Also wirds wahrscheinlich auf einzelen prüfungen hinauslaufen, dauert es eben laenger ^^ Und da Zeit geld ist, krieg ich dann halt mehr jokingly

19.10.2008 - 22:22 Uhr

Hallo Bernd,

nach ein paar wochen / monaten hat die datenbank ja mehr als 1.000.000 eintraege, denke dann waere es nicht so prickelnd, diese immer in den hauptspeicher zuladen, zumal die rechner auf der arbeit meist sehr duerftig bestückt sind (512-1024 MB).

Denke das wuerd den Rechner dann argh lahmlegen oder? Hab bisher keine erfahrung mit dem Speicherverbrauch so grosser Datasets gehabt.

@haarrrgh
Sicher, vlt bringt die mich ja auf die richtige idee, bzw werden die zeilen ja mit sql eingefuegt

19.10.2008 - 21:51 Uhr

verwendetes Datenbanksystem: MS-Sql (ka welche version der server hat)

Hallo,

folgendes, ich kriege pro Woche Paradox DB datein, die in eine MS Sql DB eingespeist werden sollen. Soweit alles kein Thema, nun will ich aber keine Dubletten in die DB geben.

Program geht bisher wie folgt vor:

Paradox DB's auslesen und in DataTable speichern, dann jede row via insert in Sql DB schreiben.
Koennte ja jetzt vor jedem Insert abfragen obs die Zeile schon gibt, aber denke bei 30.000 -50.000 Datensetze koennte das nicht so performant sein.

Jemand ne Idee wie ich es schoener hinkriege?

19.10.2008 - 15:27 Uhr

Ah wunderbar, wieder was gelernt 🙂

Hatte nicht bedacht, dass ich unter 64 bit ja ürs erstellen auf x86 umstellen muss (soll ja auf 32er systemen laufen ^^)

Läuft alles wunderbar und ich muss nichtmehr den umweg ueber virtualbox gehn freu

Danke nochmals für die Super antwort.

18.10.2008 - 00:01 Uhr

verwendetes Datenbanksystem: Paradox, MS-Sql

Hallo, ich bekomme regelmaessig Paradox DB Dateien und meochte diese gerne in eine SQL Datenbank einbinden.

Unter 32 Bit windoof ist das auch kein thema, da gibt es ja die ODBC treiber für Paradox.

Nur hab ich grad das problem, dass ich keine passenden Treiber fuer 64 bit finde.

Hat jemand ne ahnung wie ich die Paradox DB Datein unter Vista 64 bit ansprechen kann?

Schonmal danke im vorraus fuer jede hilfe!

01.08.2008 - 12:00 Uhr

Kriege beim ausführen immer den Error:

@Date Parameter must be defined.

Der aufruf sieht wie folgt aus:

Funktion:

CREATE FUNCTION dbo.GetPeriod(@date datetime, @interval int)
RETURNS BIGINT
AS
BEGIN
RETURN (CONVERT(BIGINT, @date) * 60 * 60 * 24
+ HOUR(@date) * 60 * 60 + MINUTE(@date) * 60
+ SECOND(@date)) / @interval
END

Select anweisung:

SELECT min(b.ID), min(ts), max(ts), min(TotalDist), max(TotalDist) , Sum(b.Speed), Count(b.Speed), min(ADC0), max(ADC0)

FROM
(SELECT * dbo.GetPeriod(ts, 3600)
AS period
FROM candata b INNER JOIN gpsdata a ON b.Time = a.gpsTime AND b.ID = a.ID
WHERE ID = 'xy' AND ts ≥ '2008-08-01 12:00:05'
AND ts ≤ '2008-08-01 20:00:05')
tmp
GROUP BY period
ORDER BY period

aufrufen tu ich das ganze als
getTable(funktion + " " + select)

Habe ich da einen Eingabefehler drin, oder was mache ich sonst falsch?

01.08.2008 - 11:10 Uhr

Wow vielen Dank schonmal, werd das gleich direkt mal ausprobieren und mich dann nachher nochmal melden 🙂
Und nu habsch schon wieder was über MySQL gelernt freu

01.08.2008 - 10:11 Uhr

Wie lös ich das denn elegant über den SQL-Server? Ich hab da grad nur ne Idee, dass man dann für jedes Zeitintervall eine SQL-Abfrage laufen lassen müsste. Das würde denke ich u.U. lange dauern, bzw Traffic verursachen, oder übersehe ich da was?

@FZelle: Also inner MySQL DB isses als 'datetime' angegeben, daher denke ich, dass er das auch so in die DataTable übernimmt, oder?

Edit: Habe grad den DataType der Spalte im DGV abgefragt und er wird mir System.DateTime angegeben

01.08.2008 - 09:29 Uhr

Keiner eine Idee?

30.07.2008 - 14:03 Uhr

Das Beispiel hab ich mir schon angesehn. Aber das ist ja genau das was ich mit einer Summe fuer eine ganze Tabelle meine.

Natürlich waer es denkbar, das ich jede Spalte einzeln durchlaufe, aggregiere nach den Kriterien und dann immer ein feld in eine neue DataTable speicher. Aber das sollte ja nciht Sinn der Sache sein und ich denke vor allem sehr rechenaufwendig bei > 50 000 Datensaetzen.

Ich hatte auch schon mit Typecast gearbeitet und das Ergebnis in eine Long gespeichert, dass in eine neue Tabelle geschrieben. Dann hatte ich aber knapp 9000 zeilen aus ehemals 604 gefilterten.

Edit:

wenn ich


compute = (string)Arbeitsumgebung.Compute("SUM(idx)", "ts = #09.07.2008 09:03:06#");

Nehme, erhalte ich folgende Exception (den wert im ts feld gibt es) :

"Das Objekt des Typs System.DBNull kann nicht in Typ System.String umgewandelt werden."

30.07.2008 - 13:26 Uhr

verwendetes Datenbanksystem: MySQL Server

Hallo, ich habe eine DataTable die z.B. mit Werten gefüllt ist, wobei jede Zeile einen Zeitstempel hat.

Nun moechte ich erreichen, dass ich diese Tabelle anhand einer Benutzereingabe aggregieren lass.

Sprich wenn ich am Anfang Datensaetze mit 5 Sekunden abstand habe und der Benutzer 5 Minuten moechte, sollen alle Datensaetze die in einem 5 Minuten Intervall liegen aggreigert werden. Dabei soll Spaltenabhaengig die Summe, Count etc. gebildet werden.

Das ergebnis moechte ich dann in einer neuen DataTable speichern und diese an mein DGV binden.

Mit der DataTable.Compute Methode habe ich es schon versucht, aber leider ohne wirklichen erfolg.

Mein letzter CodeSchnipsel sieht wie folgt aus:

DateTime timea = time1;
            DateTime timeb = time2;
            DateTime timec = timea.AddMinutes(5);
            int arraygr = Arbeitsumgebung.Columns.Count;

            while (timea < timeb)                
            {
                Arbeitsumgebung.Compute("SUM(idx)", "ts > #09.07.2008 00:00:00# and ts < #09.07.2008 23:00:00#");
                timea = timea.AddMinutes(5);
                timec = timea;

            }

timea und timeb beschrieben hierbei den Start und Endzeitpunkt der Daten, also die Zeitspanne der vorhandenen Daten.

Habe ich ueberhaupt den richtigen Ansatz mit der COmpute Methode? Weil bisher habe ich immer nur gefunden, dass man damit z.B. am Ende eines DGV die Summe einer Spalte anzeigen laesst, aber ich moechte sogesehn ja viele Summen in einer DataTable haben.

Der obige Code liefert nach einiger Rechenzeit alle Datensaetze unaggregiert zurueck.

Belzaharas

20.07.2008 - 20:45 Uhr

Okay, das hat mir bei den statischen manipulationen geholfen.

Edit: rest hat sich erledigt

18.07.2008 - 22:12 Uhr

Danke, werds mir mal in ruhe anschaun und dann wieder hier melden 🙂

18.07.2008 - 14:10 Uhr

Hallo,

ich habe eine DataTable in der z.B. ein IntWert steht, der für die ausgabe immer durch 200 geteilt werden soll.

Muss ich dafür immer die DataTable durchlaufen nach der abfrage (was ja mitunter zeitaufwendig werden kan bei hnudertausenden datensaetzen)
oder gibt es eine alternative, dass ich z.b. direkt bei der abfrage etwas einbinde?

Also bemi durchlaufen saehe es ja in etwa so aus:


foreach (DataRow drow in datatable1.Rows)
{
    drow["Spaltenname"] = Spaltenwert / 200
}

Danke schonmal für Hilfestellungen

Edit: Kann das wer nach Datentechnologien verschieben? Habs dummerweise im falschen forumsbereich eröffnet, danke

16.07.2008 - 15:38 Uhr

Hm also autosizing sind alle aus.

Hab mal virtualmode probiert, aber komme damit net zurande und die hilfe bringt mich da auch nicht weiter.

Gibt es ein gutes tutorial, was es fuer gebundene datagridviews veranschaulicht?

Hab über suche leider nix sinniges gefunden

16.07.2008 - 11:09 Uhr

Okay, ich werd wenn ich wieder daheim bin mal schaun, ob einer der Autosize Modes an ist und diesen ggf. deaktivieren und dann erneut testen.

Sollte dies nicht helfen, werd ich mal den virtual mode testen.

Danke schonmal für die Anregungen, ob und wie es funktioniert hat, poste ich dann später.

15.07.2008 - 22:32 Uhr

Hallo,

ich habe eine DataGridView mit 4 Spalten und ca 1000 zeilen. Die daten beruhen auf einer Datatable.
Das anzeigen geht recht fix, aber wenn ich nun in dem DGV scrolle, ist es rel. langsam und ein ruckeln ist erkennbar, zudem geht die cpu auslastung auf ca50-60% hoch solange ich scrolle. (dual core 2,x ghz)

Ist das normal oder liegt es an mir?

14.07.2008 - 13:30 Uhr

Hm okay, hab grad auf anhieb nur die fuer express gefunden (vlt. bin ich ja zu bloed zum googlen und bin grad net am heimischen rechner also kann ich net isn prog schaun)

Aber express kann ja beliebig genutzt werden, daher werd ich das wohl auch verwenden, da es eh nur um nen simples auslesen und darstellen einer datenbank geht ^^

Und danke nochmals fuer die Antworten 🙂

Edited: paar rechtschreibfehler und so korrigiert 😉

14.07.2008 - 12:40 Uhr

Ich hab halt im Kopf, dass ich das, da es ja ne akademische Version ist, nur für Unizwecke und private Zwecke einsetzen darf.

Bin mir da aber halt nicht genau sicher, was und was nicht 😉

14.07.2008 - 12:04 Uhr

Hallo,

ich besitze eine akademische Version von VS08. Nun weiss ich, dass ich damit keine kommerziellen Programme erstellen darf.

Nun bin ich mir aber nicht sicher, was alles dazu zaehlt.

Dürfte ich nun für meinen Arbeitsgeber während meiner Arbeitszeit ein Program erstellen, dass wir dann in der Firma nutzen?

Oder zaehlt das als kommerziell, da ich es in der Arbeitszeit erstelle, bzw es in einer Firma gewerblich genutzt wird?
Aber andererseits, verdiene ich mit dem Program ja nichts, also waere es ja freeware?!

Will halt auf nummer sicher gehen, nicht das ich nachher Strafen zahlen muss.

Danke schonmal für eure antworten.

05.06.2008 - 19:32 Uhr

Also ich hab folgenden Code:


{
                    DataSet Result = new DataSet();
                    Result = DbConnector.GetTableWithWhere(eintrag, "ID", biglist.SelectedValue);
                    
                    // es wird jeweils die erste tabelle und spalte genommen, da die ID einzigartig ist
                    // und es somit nur eine Trefferzeile gibt
                    DataTable ResultTable = Result.Tables[0];
                    DataRow ResultRow = ResultTable.Rows[0];
                    ResultRow[1] = Name.Text;
                    if (eintrag != "Semester")
                    {
                        ResultRow[2] = Beschreibung.Text;
                    }
                    deletewarning.Text = Convert.ToString(ResultRow[1]);
         

      
                        string constr = ConfigurationManager.AppSettings["ConnectionString"];
                        SqlConnection con = new SqlConnection();
                        con = new SqlConnection(constr);
                        con.Open();
                        SqlDataAdapter SqlDataAdapter1 = new SqlDataAdapter();
                        SqlDataAdapter1.Update(Result);
                        con.Close();
           
                    
                    Result.AcceptChanges();
                    reloadBiglist(biglist.DataSourceID);
                }

Er Speichert den neuen Wert richtig in der Zeile, das seh ich an der ausgabe bei dem Label deletewarning.
Der connection string ist auch richtig, also gibt keine fehler und funzt bei Select abfragen.

Nur versteh ich nicht, warum er die Änderungen nciht in die DB speichert. Ich seh da keinen fehler und versteh das problem nicht o.0

Besten Dank schonmal im vorraus

Hauke

21.05.2008 - 17:06 Uhr

Okay Problem gelöst, eigene Dummheit ist doch meist der größte Störfaktor...

        DLlinkliste.DataSourceID = &quot;LinkData&quot;;  
        DLlinkliste.DataBind();  

funktioniert, man sollte ja auch die Source angeben damits funzt...

20.05.2008 - 15:48 Uhr

Muss ich dann das delete über die SqlDataSource ausführen oder kann ich die DataSource auch refreshen wenn ich die Daten mit einer anderen Methode lösche?

Bzw. wie kann ich ein refresh erreichen? Ist bestimmt simepl, aber ich komme da net drauf und find auch nix inner hilfe.

nur <control>.DataBind() reicht hier leider nicht zum refreshen.

Gruß Hauke

Edit: Ich weiss nicht ob es wichtig ist:

Die Data list und sqldatasource sind in der datei.aspx definiert und die methode die aufgerufen wird nach dem drücken des buttons befindet sich in der code behind datei datei.aspx.cs

20.05.2008 - 15:22 Uhr

Hallo,

es geht um folgendes:

Ich habe eine DataList in der ich neben text auch Buttons einfuege um einzelen Eintraege loeschen zu koennen.
Die DataList wird durch eine Auswahl in einem Dropdownmenue gefuellt.

Das loeschen klappt auch alles wunderbar, nur steht der gelöschte Datensatz noch solange in der DataList, bis ich z.B. über das DropDownMenu einen andern Punkt auswaehle und dann wieder zurueck gehe.

Dieses aktualisieren sollte man doch auch mit dem drücken des delete buttons koppeln koennen, oder?
Soetwas wie ein .Refresh / .Reload hab ich ja leider nicht gefunden.

Danke für Anregungen 🙂

20.05.2008 - 15:15 Uhr

Meine ID ist in dem Context ein string, japs 😉

20.05.2008 - 14:21 Uhr

Hey,

vielen dank Peter, hast mir echt total geholfen.

Hab leider nur einen Link zudem Thema den ich hier anbieten kann:

Command Funktionen MSDN

Der Button sieht nun wie folgt aus:

                
<asp:Button ID="delButton" runat="server" Text="Delete" visible="false"
                CommandName="delete" CommandArgument='<%# Eval("ID") %>'
                OnCommand="delFileButton_Click" />

Die zugehörige Methode:


public void delFileButton_Click(Object sender, CommandEventArgs e)
        {
            string fileid = (String)e.CommandArgument;
            Label2.Text = fileid;

            string query = "DELETE FROM PublishedFiles WHERE ID ='" + fileid + "';";
            DbConnector.executeNonQuery(query);
        }

Gruß hauke

Edit: Frage in neues Thema verschoben

20.05.2008 - 11:16 Uhr

Also das mit dem dynamischen einblenden funzt nun 1a, danke nochmal dafür 🙂

Nun schliesst sich aber leider direkt die nächste frage an:

Wie übergebe ich einen Wert aus der aktuellen row bei dem on_click ereignis des Buttons an die Methode die dann folgt?

20.05.2008 - 10:15 Uhr

Die Daten stehn soweit bereits drin, werd das mit dem ItemDataBound-Event mal ausprobieren.

Hört sich schonmal gut an, meld mcih dann später nochmal obs geklappt hat.

Gruß Hauke

20.05.2008 - 10:06 Uhr

Sehen kann der ja alle Daten, er soll nur in den Fällen wo er der Ersteller des Links ist, in der Lage sein diesen über einen Button zu löschen.

Also bringt mich das Filter imd Page_Load ja nicht weiter, denn dann sieht er ja nicht mehr alle Daten, oder liegt da ein Denkfehler bei mir vor?

Gruß hauke

20.05.2008 - 09:34 Uhr

Was ich gestern noch vergessen habe, die DataList wird net beim Pageload erzeugt, sondern richtet sich nach einem wert der in einem dropdownmenue ausgewaehlt wird, also kann ich page_load leider net nutzen.

Ersteinmal danke für das Willkommen Peter 🙂

Versteh leider net so ganz wie du das meinst. Meinst du direkt beim PageLoad oder wie? etwas verwirrt schaut

20.05.2008 - 00:23 Uhr

Hallo, ich hoffe ich bin nu im richtigen Bereich gelandet.

Also folgendes:

Ich hab mir ne DataList gemacht und diese wird auch wie gewünscht gefüllt.
Nun gibt es eine Spalte in der zugehörigen Datentabelle das UserName heisst.
Wird auch ordentlich angezeigt.

Bei der Datalist handelt es sich um eine Auflistung von Links zu einem bestimmten Thema.
Nun möchte ich, dass wenn Benutzer X angemeldet ist (über Membership, funzt auch) neben den Links die er gepostet hat, in der Datalist ein löschen button eingeblendet kriegt.

Das auslesen des benutzers via User.Identity.Name klappt 1a.
Wie ich das onclick ereignis zuweise schaffe ich auch, aber ich krieg es nicht hin,
irgendetwas (weiss net was) in den Pagecode einzufügen, so dass er mir den Button halt nur bei den Feldern mit UserName X anzeigt.

Vonner Logik her isses ja if Eval("UserName") == User.Identity.Name then { insert button into html code} else {nothing}

Hat da wer ne Idee / Suchbegriff / Tutorial etc. für mich?
mit <script> hier dann der c# code</script> hab ich auch nichts erreicht.

Schonmal im Vorfeld ein Danke an alle Helfer 🙂