Laden...

Forenbeiträge von entelechie Ingesamt 63 Beiträge

16.04.2005 - 12:56 Uhr

Original von katrin

  
blah.Value = Convert.ToBase64String( buffer ) ;  
  

ich hab zwar noch keine erfahrung damit, dateien
in der db zu speichern.
hast du vielleicht einfach vergessen die zeichen
zurueck zu konvertieren (warum ist das konvertieren
ueberhaupt notwendig, wenn du binaerdaten hochlaedts)?

16.04.2005 - 12:53 Uhr

ne. also der benutzer sollte schon sinnvolle meldugen
bekommen wie z.b. bitte geben sie eine ganzzahl ein
oder der text darf nicht laenger als 10 zeichen sein.
die rohen exceptions zu zeigen ist nicht gut.

15.04.2005 - 23:08 Uhr

hallo,

ich beschaeftige mich zur zeit mit fehlerausgaben in web-anwendungen
und wollte mal ideen sammeln 🙂

wie gebt ihr eure fehler auf aspx seiten aus?

das ganze sollte nicht zu aufwendig sein.
z.b.:
in gui anwendungen mache ich das mit errorprovider
(da erscheint dann immer ein kleines rotes ausrufezeichen mit fehler-
text als tooltip).

13.04.2005 - 20:08 Uhr

zum thema trennung in schichten, kann ich jedem nur
http://www.ormapper.net/
empfehlen.
das ganze kostet zwar 50$. man bekommt jedoch
ein riesen paket mit quellcode und unbegrenzte updates.

der ormapper versteckt die komplette datenhaltungslogik
hinter c# objekten, so dass man in 80% der faellen gar nicht
merkt, dass man mit einer datenbank arbeitet.
zudem ist ein tool enthalten, dass die notwendigen
klassen (die die tabellen abbilden) generiert.

das ganze ist wahrscheinlich nichts fuer leute die nur kleine
sachen machen (dafuer wohl zu teuer 😉).

13.04.2005 - 08:10 Uhr

ich hab in der registry alle pfade durch den 1.1er (v1.14 irgendwas)
ersetzt. ohne erfolg.
🙁

12.04.2005 - 20:23 Uhr

hallo,

ist es moeglich, dass ich dem 2002er studio beibringe das 1.1er
framework zu benutzen?

hintergrund:
in der firma nutzen wir ein anderes vs (laeuft mit framework v1.1).
zuhause habe ich jedoch das 2002er studio (laeuft mit v1.0)
jetzt kann ich natuerlich keine projekte zuhause bearbeiten...

gibts da ne loesung??

25.03.2005 - 09:33 Uhr

du koennstest es so machen, dass jedes modul
eine eingene (bzw eine gruppe von) dlls darstellt.
die kannst du dynamisch zur laufzeit laden.

ist z.b. dll "kalender.dll" da, gibts nen menuepunkt
kalender mit den entsprechenden funktionen.
die seiten die zu den dlls gehoeren kannst du ja in
unterordner mit den namen der dlls legen.

oder jede dll koennte dann z.b. eine eigenschaft anbieten
die dir den relativen pfad zu den seiten liefert.

10.02.2005 - 18:33 Uhr

ich habe sehr gute erfahrungen mit http://www.ormapper.net/
gemacht.
kostet zwar einmal 50$, man darf dann aber alle libs (mit
sourcen) die es gibt nutzen.

ich kann nur sagen das ding ist ein segen 🙂
die ganzen sql kommandos verschwinden aus dem quellcode,
was ihn einfacher zu verstehen und zu warten macht.

der objekt ansatz zum zugriff auf datenbanken ist fuer alle
projekte, die ueber ein hello world hinausgehen ein muss.

17.01.2005 - 08:39 Uhr

jopp, danke mit der manifestdatei klappt es 🙂

16.01.2005 - 20:25 Uhr

hallo,

ich habe ein problem 🙂
in meiner anwendung will ich balloon-tips verwenden.
damit das geht schalte ich die xp-erweiterungen (?)
mit


static void main()
{
   Application.EnableVisualStyles(); // xp-erweiterungen
   Application.DoEvents();
   Application.Run(new MyForm());
}

ein.

das funktioniert auch.
leider werden dann aber keine icons (ich hab im moment nen treeview
und einen toolbar) angezeigt.
kommentiere ich EnableVisualStyles() aus, so werden die icons
angezeigt (aber die balloontips gehen nicht mehr, klar).

hat jemand ne idee wo dran das liegen koennte?

12.01.2005 - 18:45 Uhr

hi 🙂

hab deinen mp3-manager auch grad ausprobiert.
sieht wirklich toll aus.
leider kriege ich auch eine fehlermeldung.
aufgetreten ist die beim abspielen eines mp3s (kurz vorm song ende).
achso, ich hab die aktuelle version (vor ca. 5 min gesaugt).

sehe grad, dass es der selbe fehler wie oben ist.
das ganze ist reproduzierbar, kommt immer am ende eines songs.

07.01.2005 - 17:39 Uhr

hm. danke mal fuer die antwort. ich kanns leider erst am montag probieren 🙂

06.01.2005 - 18:32 Uhr

hallo,

weiss jemand wie ich zu einem shortcut (System.Windows.Forms.Shortcut)
die bezeichnung (z.b. "Alt+F4") kriege?
bissher hab ich nur sowas gefunden:


Shortcut s = Shortcut.AltF4;
KeysConverter.ConvertToString(s);

was aber nicht funktioniert. er gibt mir nur dem namen des enums
also "AltF4" (statt "Alt+F4") zurueck.

hintergrund ist der, dass ich die menues selber zeichne (um z.b.
icons darzustellen).

21.12.2004 - 18:49 Uhr

vielleicht so:


DateTime start = DateTime.Now
// suche
DateTime end = DateTime.Now - start

09.12.2004 - 20:10 Uhr

ups.
hast du das rueberkopiert.

ich seh grad da fehlt ein c:
also statt
MyButton.Attributes["onlick"] = "confirm("Soll der Datensatz gelöscht werden?")";

muesste es
MyButton.Attributes["onclick"] = "confirm("Soll der Datensatz gelöscht werden?")";

heissen.
wenns dann immer noch nich geht poste mal ein compilierbares beispiel, damit
mans nachvollziehen kann.

06.12.2004 - 17:58 Uhr

das is doch alles quark. falls du verhindern willst, das jemand ein auto
in deine cd liste tut, lass die liste nich von ilist etc erben.

mach ne klasse und benutz die collection deiner wahl als member.
zur not noch icollection (damit du das ding in foreach verwenden kannst)
implementieren.

wie vizone gesagt hat, ist die idee die methoden zu verstecken mist.
auch die add(object) methode ne exception werfen zu lassen oder
ueber debug.assert abzusichern is nich toll.

mach nicht den fehler ne liste mit 100 methoden zu bauen von denen
du nur 5 brauchst. das stiftet verwirrung und keiner blickt durch; auch
du selbst irgendwann nicht mehr.

05.12.2004 - 12:47 Uhr

vielleicht waere es besser nicht von collection base zu erben.
stattdessen verwendest du hasttable,queue oder was auch immer
als member und bietest nur die methoden an, die wirklich sinnvoll sind.
evtl kannst du ja noch das icollection interface implementieren,
wenn das ganze wie ne collection aussehen soll (fuer z.b. foreach).

02.12.2004 - 20:23 Uhr

vielleicht hilft group by weiter?


UPDATE IMPORT P
SET P.ID = (SELECT I.ID FROM IDENTITY I 
WHERE P.PERSONALNR = I.PERSONALNR AND I.AKTIV_FLAG = 1
Group By I.ID)

29.11.2004 - 18:23 Uhr

also ich habs immer im pageload gemacht.
wobei du das auch direkt ins html schreiben koenntest.


protected System.Web.UI.WebControls.Button MyButton;

// ...

protected void Page_Load(object sender, /*der andere parameter dessen name mir nicht einfaellt */ )
{
  MyButton.Attributes["onlick"] = "confirm(\"Soll der Datensatz gelöscht werden?\")";
}

so oder so aehnlich sollte es funktionieren.
fuer die genau syntax (mit nem beispiel) schau unter http://www.javascript-page.com/confirm.html nach.

der string den du als schluessel bei atribues (also hier das "onclick") uebergibst
wird direkt in das html input tag geschrieben. du kann damit alle gueltigen
javascript-events uebergeben wie z.b. "onmauseover", "onmauseout",...

28.11.2004 - 18:30 Uhr

wenn du das confirm mit:
meinBitton.Attributes["onclick"] = "confirm....";
hinzufuegst, wird der button click (also das asp.net event/postback)
nur ausgeloest, wenn die java script funktion true zurueckgibt
(also wenn der benutzer ok drueckt).

28.11.2004 - 13:51 Uhr

jopp. kann nur daran liegen, dass in der spalte songs.idalbum
werte eingetragen sind, die nicht in der tabelle album vorkommen.

machst du nen left outer join drauss kriegst du alle datensaetze,
wobei die felder der tabelle album dann null-werte enthalten werden.

27.11.2004 - 11:15 Uhr

du weist, dass wenn die seite zum server zurueckkommt
(durch postback, z.b. wenn sich der ddl wert aendert) alle
variablen (wie deine hashtable ht) neu erzeugt werden und
ihre alten werte nicht speichern?

26.11.2004 - 21:12 Uhr

ich weiss zwar nicht was du vorhast.
falls es aber nur darum geht informationen zwischen den seiten
auszutauschen, solltest du mit sessions arbeiten
(alternativ ueber url-parameter).

26.11.2004 - 15:02 Uhr

http://www.codeproject.com/aspnet/AlvaroRemoteScripting.asp

hier wird per java script eine methode einer aspx-seite aufgerufen.

ich hab keine ahnung wie es funktioniert; habs bissher immer nur verwendet
ohne es mir genauer anzuschauen.
vielleicht hilfts dir ja.

25.11.2004 - 18:14 Uhr

also in der hashtable sind die sachen nach dem schluessel sortiert.
wenn du nach den werten oder auf-/absteigende sortierung
haben willst musst du da selber machen.

vielleicht wie werte der hashtable in ein array kopieren
und array.sort aufrufen?

24.11.2004 - 18:10 Uhr

meinst du vielleich selectedvalue
(beim fuellen auch die datavaluefield eigenschaft setzen)?

21.11.2004 - 12:27 Uhr

zu 1.
das paging musst du im extremfall selber machen.
mysql bietet dir die moeglichkeit, im select statement
"limit" zu benutzen (da kannst du dann angeben gibt
mir datensatz 5 bis 19 oder sowas).
beim ms-sql-server musst du es wohl selber machen,
z.b. ueber ne stored procedure.

21.11.2004 - 12:23 Uhr

schau mal nach
Response.Redirect("Seite2.aspx") bzw
Server.Transfer("Seite2.aspx")

Server und Response sind beides Eigenschaften der Page
und instanzen von HttpResponse/HttpServerUtility (hoffe
die klassennamen stimmen hab jetzt nicht nachgeschaut),

18.11.2004 - 18:26 Uhr

gemeinsame resourcen kannst du am einfachsten
mit lock sperren:


class Lala
{
   public void DoSomethingCritical() 
  {
    lock (this) 
    {
       // wird nur von einem client betreten, alle anderen muessen warten
    }
  }
}

ausserdem gibts noch mutex und semaphore.

genaueres kann ich dir leider nicht sagen hab noch nie richtig unter
.net mit threads gearbeitet. 🙂

17.11.2004 - 17:50 Uhr

Original von housefreak
Und wie bekomm ich dann noch den Namen anstatt die ID?

du kannst auf alle spalten beider tabellen zugreifen:


select songs.SongName, songs.Year, songs.Rating,artist.artist 
from songs
  inner join artist on songs.idartist=artist.id
where artist.artist like 'a%'
order by artist.artist

das zugriffschema ist immer tabellenname.spaltenname.
sind die spaltennamen ueber die tabellen eindeutig kannst du
den tabellennamen auch wegglassen:


select SongName, Year, Rating,artist 
from songs
  inner join artist on songs.idartist=artist.id
where artist.artist like 'a%'
order by artist.artist

16.11.2004 - 21:26 Uhr

ups 🙂

16.11.2004 - 21:24 Uhr

zuerst wird die where bedingung ausgewertet. zu diesem
zeitpunkt gibts die spalte artist noch nicht.

du brauchst einen join. der select is quatsch:


select *
from songs
  inner join artist on songs.idartist=artist.id
where artist.artist like 'a%'
order by artist.artist

07.11.2004 - 11:37 Uhr

deinem sql-string fehlt wahrscheinlich das abschliessende '.
falls ich das richtig sehe muss hinter dein path.replace noch ein ' angehaengt
werden:


string sql = "INSERT INTO Medias (SerialNumber, DriveType, Label, Filename, Path) VALUES ('" + Serial + "','" + info.DriveType + "','" + Label + "','" + filename + "','" + path.Replace("\\" + filename, "";) + "'"; // hier

ausserdem musst du sicherstellen, dass du keine variablen mit ' in den string einfuegst,
bzw. vorher durch '' ersetzt.

02.11.2004 - 20:42 Uhr

zu 2.)
ueber die reihenfolge der threads kann man keine aussage machen.
das wird vom betriebsystem gehandhabt wie es das fuer richtig haelt.

zu 1.)
unter .net hab ich damit noch nichts zu tun gehabt.
vielleicht (sollten sonst keine antworten kommen) google mal nach
"mutex condition" evtl. auch nach semaphore.

27.10.2004 - 17:44 Uhr

ich denke von jeder klasse is zu viel des guten.
fass die sachen doch thematisch zusammen
wie z.b dll fuer datenbank abfragen, dll fuer
statistikberechnungen etc.

26.10.2004 - 21:35 Uhr

naja du kannst doch einfach zum server connecten und einen
versions string bzw. nr uebertragen. das duerfte ja nicht so schwer
sein.
mit c# musst du da nich mal direkt die socket api nutzen sondern
kannst evtl mit remoting arbeiten.

beim client programm musst du nur drauf achten einen moeglichst
kleinen kern zu haben und die funktionalitaet lagerst du in ddls aus.
diese kann der client sich dann vom server ziehen.

21.10.2004 - 17:55 Uhr

was kriegst du denn genau fuer eine fehlermeldung wenn du einen laengeren
text eintragen willst?

ich hab den sql ohne grosse aenderungen installiert (und meines wissens
spielt die page size dabei keine rolle) und der text kann ca. 2gb gross
werden. probiert hab ich das schon mit langen texten > 10 000 zeichen.

15.10.2004 - 14:38 Uhr

was meinst du mit nicht ganz sicher?

das sollte in etwa so aussehen (pseudocode):


GetInstance(Session session)
{
  KlasseX k = (KlasseX)session["KLASSE_X_SINGLETON"];
  if ( k == null )
  {
     k = new KlasseX();
     session["KLASSE_X_SINGLETON"] = k;
  }
  return k;
}

viel falschmachen kannst du da nicht. jeder benutzer bekommt
seinen eigenen session-container.

13.10.2004 - 17:21 Uhr

speicher das objekt doch einfach in der session (viel mehr sinnvolle
loesungen gibt es glaub ich nicht).
du laesst einfach die statische variable weg und bei deiner GenInstance()
methode des singletons uebergibst du ein session objekt.

11.10.2004 - 21:29 Uhr

hi,

ich hab nich gesagt, dass es nicht geht, sondern, dass ich sowas nich kenne 🙂
und ich sag nicht das du keine ahnung hast; sorry wenn mein posting so geklungen hat.

zu deinem problem:
solche gegenseitigen referenzen sind immer boese.
an deiner stelle wuerde ich das anders loesen (z.b. indem du nur den namen des benutzers
eintraegst o.ae.).

denn bei deinem fall stellt sich die frage:
was soll passieren, wenn ein benutzer geloescht wird?
wenn du das so abbildest muesste nach der logik alles geloescht werden wo der user
je dran war. ich kann mir nicht vorstellen das soetwas sinn macht.

11.10.2004 - 18:18 Uhr

hm. also sowas kenne ich beim sql server nicht.

allerdings klingt dein datenbankdesign nicht in ordnung wenn sich zwei
tabellen gegenseitig referenzieren.
kannst du mal erklaeren wozu das gut sein soll?

20.08.2004 - 14:53 Uhr

wenn du das ganze fuer deine homepage brauchst,
wuerde es sich lohnen, dass du dir mysql anschaust.
die ist naemlich bei nahezu allen web-space-angeboten
inlusive.
schwer ist die von der bedienung auch nicht.

18.08.2004 - 18:06 Uhr

ja schau dir z.b. mal die seiten des forums an; die machen das so 🙂

seitenname?para1=value1&para2=value2...

auslesen kannst du das ganze mit:
String para1 = Request["para1"];

17.08.2004 - 18:20 Uhr

du kannst auch, wenn es sich um strings handelt, werte
ueber die url uebergeben.

05.08.2004 - 18:28 Uhr

die msde ist auf jeden fall kostenlos und das .net framework bietet speziell angepasste treiber.

30.07.2004 - 16:10 Uhr

das sessionend solltest du bekommen, nachdem
die in der webconfig eingestellte zeit abgelaufen ist
(standardmaessig sinds 20min); also wenn der webserver
20 min nichts mehr vom client x hoert loest er das
sessionend aus.

21.07.2004 - 18:15 Uhr

sind xsd dateien die xml-schemata?
wenn ja, schau dir mal das dataset an, das bietet
eine methode readxmlfile (oder so aehnlich).
bei den schemata handelt es sich (wenn ich mich nicht irre)
um eine beschreibung der datentypen etc.

aber schreib doch mal was du mit den schemata vor hast, vielleicht
kann dir dann jemand weiterhelfen.

20.07.2004 - 18:03 Uhr

du versuchst die Text eigenschaft einer page klasse zu aendern
(this ist in deinem code ausschnitt eine ableitung von page).
entweder du fuegst deiner abgeleiteten page klasse so eine
eigenschaft hinzu, oder du laeufst ueber die page controls und suchst
dein label. dazu koenntest du z.b. in die xml datei ja noch eine control
id aufnehmen.


for ( int i=0; i<this.controls.length; ++i)
  if ( controls[i].name == nameAusXmlDatei )
      setzeControlTextEigenschaft(control[i],textEigenschaftAusXmlDatei);


// auch eine moeglichkeit
setzeControlTextEigenschaft(control c,string text)
{
  try {
      c.GetType().InvokeMember("Text",System.Reflection.BindingFlags.SetProperty,
           null,c,new object[]{text});
  catch {
  }
}

14.07.2004 - 18:27 Uhr

es gibt auch noch das application objekt, was sich alle benutzer teilen.

25.06.2004 - 19:20 Uhr

schau dir doch mal die asynchronen sockets an. ich
glaub das is genau das was du suchst...