Laden...

Forenbeiträge von Warappa Ingesamt 59 Beiträge

22.12.2012 - 19:24 Uhr

Ich denke mal du arbeitest mit Linq To SQL (oder ähnlichem).

Queries dieser Art werden nicht im Code ausgeführt sondern am Server. Da dieser aber nur SQL versteht, muss die ganze Abfrage erst in einen SQL-String umgewandelt werden. Diese Umwandlungen müssen aber Fall für Fall von dem. Linq To SQL Provider implementiert werden - und deine _neue _Date-Funktion ist dem Linq To SQL Provider unbekannt - deshalb der Fehler.

Ich würde dir folgendes vorschlagen:
Nachdem time_day offensichtlich ein Int64 ist und der Linq To SQL Provider das umwandeln kann, versuche einfach den Text im Textfeld in einen Int64 zu **parsen **und ihn der Query als Wert zuzuführen.

long usertime = 0;
if(Int64.TryParse(txtChangeDay.Text, out usertime) == true)  // gültiger Wert?
{
Table<Time> ChangeTimes = db.GetTable<Time>();
 var changeDay = from d in ChangeTimes
                            where d.time_day == usertime && d.time_fk_personal_id == txtChangeEmployeeId.Text
                            select d;

Time day = changeDay.First<Time>();
            day.time_hours = Convert.ToDecimal(txtChangeHoursNew.Text);
            db.SubmitChanges();
}

Lg warappa

03.12.2010 - 11:44 Uhr

Ich seh hier kein Problem... Das ist eines der Möglichkeiten Generalisierungen in der Datenbank abzubilden und damit darf Hibernate oder sonst wer kein Problem haben.

OK, danke, dann werd ich mal den Weg gehen!

Lg
warappa

03.12.2010 - 11:18 Uhr

Hi Khalid,

dass GUIDs eindeutig sind weiß ich ... trotzdem tendiere ich schon zu den traditionellen int PKs mit autoincrement. Ist auch sauberer (finde ich) auch in Bezug auf die DAL Seite wenn man sich nicht mit guid-strings rumschlägt sondern mit good-old Integern. Und sind nicht Integers performanter in der DB?

@Problem:
Z.B.:

Haupttabelle "elements"

  • "id" PK autoincrement

Tabelle "images"

  • "id" PK FK elements.id
  • (weitere Spalten)

Tabelle "sounds"

  • "id" PK FK elements.id
  • (weitere Spalten)

Tabelle "videos"

  • "id" PK FK elements.id
  • (weitere Spalten)
03.12.2010 - 10:46 Uhr

verwendetes Datenbanksystem: MSSql (+NHibernate)

Hi,

ich möchte euch fragen ob ihr schon mit folgendem Erfahrungen gemacht habt:

Ich möchte, dass die PKs von mehreren Tabellen auf die **selbe PK Spalte in einer Haupttabelle **verweisen, um untereinander EINDEUTIGE IDs zu bekommen.

Jetzt ist meine Frage, inwieweit man da mit Performance Problemen rechnen muss bzw. ob man NHibernate das sagen kann dass es kein Join auf die Haupttabelle machen soll weil sie ja eh nur die eindeutige ID liefert.

Freue mich über jede Antwort!

lg
warappa

27.10.2010 - 10:06 Uhr

Ich verwende: MSSQL2005, NHibernate, FluentNHibernate mit AutoMapping (Conventions, Overrides,...)

Hi,

Mein Background:
ich habe früher direkt mit Sql-Abfragen gearbeitet und mir dann mein eigenes "ORM" geschrieben, das sich aber mit der Zeit als leider unzureichend herausstellte. Deswegen möchte ich ein richtiges ORM einsetzen und bin bei NHibernate gelandet.

Ich bin momentan dabei mich in NHibernate einzuarbeiten und stecke irgendwie bei n:m also Many-to-many Relations fest.

Folgendes möchte ich erreichen:

  • Items sollen in Gruppen zusammen gefasst werden können
  • Die Items können ohne Gruppe exitieren
  • Die Gruppen können auch leer sein

Was ich mir wünschen würde:

  • IList Properties in den Entities wie z.B. "Groups" im Item-Entity oder "Items" im Group-Entity
  • Das Hinzufügen oder entfernen von Einträgen in diesen Listen sollte automatisch zum Anlegen/Löschen eines Assoziationseintrages in der DB führen (Tabelle "Item2Group";), doch das Löschen aus dieser Liste sollte nicht automatisch zum (DB-)Löschen der aus der Liste entfernten **_Items _**führen.
    Z.B.
groupIt.Items.Remove(it);

soll das item in der DB belassen, aber den Eintrag in der Assoziationstabelle löschen.

Mein Problem:
Ich hab ein bisschen hin-und-her probiert mit Many-To-Many, Cascade All/SaveUpdate/... aber entweder es kam zu einer**_ Foreignkey-Verletzung_** beim Löschen der Gruppe **oder **es wurden mit den Assoziationseinträgen auch die Items gelöscht...

Jach30Lena hat gepostet, dass n:m Beziehungen in NHibernate bei ihm schon oft zu Problemen geführt haben und er es über n:1:m gelöst hat. Jetzt ist mir nicht klar, wie ich das in meinen Entities (oder Repositories?) implementieren soll.

Meine Frage:
Brauch ich in meiner Entity (oder im Repository?) eine Funktion wie "AddItemToGroup" und "RemoveItemFromGroup" oder geht das auch wie oben beschrieben über die IList Funktionen "Add"/"Remove"?

Danke schon mal im Voraus für eure Hilfe.

Lg
warappa

15.07.2010 - 10:49 Uhr

"Projektmappe aufräumen" bzw. bin-/obj-Ordner löschen könnte helfen.

Danke, das dürfte es gewesen sein!!!

Tausend Dank!!! 👍

13.07.2010 - 00:15 Uhr

Ich habe alle (3) Projekte auf .NET 2.0 gestellt und die References überprüft (markiert und im Eigenschaftenfenster die Runtime-Version kontrolliert).

Es waren alle Projekte vorher .NET 2.0 Projekte, aber der Upgrade-Assistent hats geändert - und nun kann ichs anscheinend nicht mehr rückgängig bekommen 😦

Bin immer noch für jeden Input dankbar!

12.07.2010 - 14:04 Uhr

Hallo,

ich habe folgendes Problem:

Ich hatte in Projekt für's .NET 4 entwickelt, habe aber wieder auf 2.0 wechseln müssen.

Überall (auch in den Abhängigkeiten) habe ich das TargetFramework auf 2.0 gestellt. Komischerweise hat aber die erstellt Projekt-DLL eine Anhängigkeit von mscorlib 2.0 UND (!?) 4.0 (lt. Reflector).

Ich weiß nicht mehr, wo ich noch schauen soll. 😦

Könnt ihr mir helfen?

Lg
warappa

22.02.2010 - 19:01 Uhr

Hi,

versuchs mal damit:

string filename = Path.Combine(Environment.GetFolderPath(System.Environment.SpecialFolder.Desktop), this.Klausur_Maker.listbox_klausuren.Text + ".pdf");

Lg
warappa

17.08.2009 - 11:02 Uhr

Ich bin drauf gekommen, dass es mir in Wirklichkeit ja nur um die Serialisierung von Objekten geht... Das mit dem Manipulieren von den XML-Daten ist nicht das was ich eigentlich brauche (schneller getippt als gedacht).

Wie gesagt, will ich meinen eigenen Serialisierer dem WebService aufzwingen, aber ich habe noch keine Möglichkeit gefunden, das zu bewerkstelligen.

SRY für's auf-falsche-Färte-locken!

Lg
warappa

17.08.2009 - 08:46 Uhr

Danke erstmal für deine Antwort! Leider hat das auch nichts gebracht...

Eigentlich will ich nur für meinen Webservice die **Serialisierung **übernehmen - aber ich habe keinen Plan wo ich mich hier einhängen könnte. SoapExtensions (damit hab ich ein bisschen experimentiert) helfen mir da offensichtlich auch nicht weiter.

13.08.2009 - 10:27 Uhr

Hallo,

gibt es eine Möglichkeit die Parameter einer Webmethode vor dem eigentlichen Aufruf zu manipulieren?

Edit:
Ein bisschen genauer:
Ich möchte die Anforderungsxml lesen und bei Bedarf manipulieren - kann man das?

Lg
warappa

14.04.2009 - 10:10 Uhr

Hi JAck30lena 😉

der businesslayer sollte keine ahung von id´s haben, da der businesslayer ein objekt anhand seiner referenz idedifiziert und nciht anhand von objektid´s. id´s sind auch etwas datenbankspezifisches und sind daher aus der BL herauszuhalten.

Hatte vermutet/gehofft das zu hören, also mach' ich's so!

dieses feature nennt man lazy loading und sollte konfigurierbar sein, wenn du es allgemein halten willst. das hat den grund, das du bei der anzeige ineinem scrollbaren graphen z.b. sofort alle werte benötigst, weil du ansonsten ein "ruckeln" bei der anzeige provozierst, da du noch werte ad-hock nachladen musst. andererseits ist lazy loading bei der anzeige in einem grid wiederrum hochinteressant, da in einem grid nur eine geringe anzahl an datan gleichzeitig angezeigt werden kann (im gegensatz zu einem graphen).

OK, dann werde ich mal versuchen beides bereit zu stellen.

Danke wiedereinmal 😉

Lg
warappa

14.04.2009 - 09:29 Uhr

verwendetes Datenbanksystem: SQL

Hallo, da bin ich wieder 😉

In meinem vorherigen Thread hab ich versucht die richtige Kommunikation zw. DAL und BL herauszufinden und das ist dabei rausgekommen:

DAL stellt dem BL Daten-Interfaces und Zugriffsmethoden-Interfaces zur Verfügung:
DataAccess.Interfaces (Namespace für Zugriffsmethoden-Interfaces)
DataAccess.Entites.Interfaces (Namespace für Daten-Interfaces)

Im jetzigen Design werden die Entites bis zur UI hochgereicht (mit Interfaces, dass die IDs (die ja Sache des DAL sind) als pure getter bereitstellt, Rest: getter/setter).

Nun sieht eine Klasse so aus:


public class PageEntity : IPageEntity
{
	protected int? key = null;

	public int? Key
	{
		get { return key; }
		set { key = value; }
	}

	private int active = 1;

	public int Active
	{
		get { return active; }
		set { active = value; }
	}

	private int position = 0;

	public int Position
	{
		get { return position; }
		set { position = value; }
	}

	private string path = null;

	public string Path
	{
		get { return path; }
		set { path = value; }
	}

	private int? pageCollectionID = null;
		
	public int? PageCollectionID
	{
		get { return pageCollectionID; }
		set { pageCollectionID = value; }
	}

	public override string ToString()
	{
		return "" + key + ": " + path;
	}

	public IPageEntity CreateInstance()
	{
		return new PageEntity();
	}
}

und das öffentliche Interface so:


public interface IPageEntity
{		
	int? Key{ get; }
	int Active { get; set; }
	int Position { get; set; }
	string Path { get; set; }
	int? PageCollectionID { get; set; }

	IPageEntity CreateInstance();
}

Würde grundsätzlich funktionieren...nur sieht der UI-Layer im jetzigen Design ein Implementierungsdetail: die IDs (Key, XXXID).

Ich würde gerne so etwas machen:


public class PageBO
{
	...
	private int? pageCollectionID = null;
	private IPageCollectionEntity pageCollection = null;
	public IPageCollectionEntity PageCollection
	{
		get 
		{
			if (pageCollection == null && 
				pageCollectionID != null)
			{
				IPageCollectionDataAccess dal = DataccessFactory.GetPageCollectionAccess();
				pageCollection = dal.LoadPageCollection((int)pageCollectionID);
			}
			return pageCollection;
		}
		set 
		{
			pageCollection = value;
			if (pageCollection.Key == null)
			{
				IPageCollectionDataAccess dal = DataAccessFactory.GetPageCollectionAccess();
				dal.SavePageCollection(pageCollection);
			}
			pageCollectionID = pageCollection.Key;
		}
	}
	...Rest wie in PageEntity
}

Auf gut Deutsch: Da die Daten hinter den IDs interessant sind, sollten die IDs ausgeblendet und entsprechende Properties automatisch die referenzierten Daten laden.

Da ergeben sich gleich einmal ein paar Fragen:

  • Sollte beim Laden von Nicht-Referenz-Daten (alles was keine ID (Foreign Key) ist) auch gleich die Referenzierten Daten mitgeladen werden (Properties werden sofort mit den Daten geladen) oder sollten sie erst on-demand geladen werden (wenn darauf zugegriffen wird)?

  • Sollte man dafür extra ein Business-Objekt erstellen oder kann man es auch gleich im Entity realisieren, sodass nicht einmal der Business-Layer eine Ahnung von IDs hat (und die Schreibarbeit weniger wird 😉 )?

Danke schon mal im Voraus!

Lg
warappa

14.04.2009 - 08:57 Uhr

Danke JAck30lena, du hast mir sehr geholfen!

Ich hab zwar wieder ein paar Fragen bezüglich Entity <-> BO, aber das Thema DAL <-> BL verstehe ich jetzt soweit (soweit ich es abschätzen kann).

Lg
warappa

14.04.2009 - 08:45 Uhr

Weiß jemand ob das so gehen würde/sollte?
(Freu mich über jeden Input 😉 )

09.04.2009 - 15:18 Uhr

OK (wir kommen meiner Erleuchtung schon näher...)

Also auf Schnittstellen der DAL in Form von Methoden kann auch in meinem Design die UI nicht zugreifen -> nur auf Schnittstellen des BL.

Ich denke, ich möchte in der UI die Entites weiter verwenden (zumindest denke ich das jetzt 😉 ), aber ohne die Möglichkeit zur Manipulation der ID zu bieten...wäre ein Interface auf ein Entity (Alle Properties die keine IDs: getter/setter und bei IDs: getter) eine legitime Lösung? Also: BL und UI erhalten nur ein Klassen-Interface?

09.04.2009 - 14:54 Uhr

OK, es ist also durchaus legitim, wenn der DAL mehr machen muss als CRUD.

Ich hatte die Befürchtung, meine Business-Logik könnte mir gänzlich in den DAL rutschen 😉 - und anscheinend (wenn ich's jetzt richtig verstehe) darf er das auch, aber nur zu einem gewissen Teil.

Eine Frage bleibt noch:

  • Wie weit darf ich meine Entities hochreichen? Darf/soll die UI diese Objekte als Daten bekommen oder sollte ich jedes Entity in ein Business Objekt umwandeln (z.B. UserEntity -> UserBO)?

Edit:
Ich Frage deswegen, weil momentan jede schicht die ID eines Entities setzen kann (auch wenn es das gar nicht dürfte!)

09.04.2009 - 14:21 Uhr

Grundsätzlich klar. Leider treffe ich hier auf die Frage "Was war zuerst: Das Huhn oder das Ei?"

Ich beschreibe mal, was ich gemacht habe:

DAL muss Schnittstellen zu den Tabellen bereitstellen - ich kapsle den Inhalt einer Row in eine Klasse (Entity) und **Instanzen **dieser Klassen kann man über öffentliche Schnittstellen laden, erstellen,... - zu Beginn einfach nur **CRUD **(Create, Read, Update, Delete).

BL kann nun über diese Schnittstelle Daten beziehen. Gut.

Nun möchte ich aber auch prüfen: gibts einen Eintrag in den Daten schon (z.B. Benutzer mit Namen "Max") -> zurück in die DAL, Exists-Funktion implementieren, Schnittstelle anpassen, BL kann auf Schnittstelle zugreifen.

Nun möchte ich, wenn kein Benutzer "Max" existiert, einen erstellen. D.h. in BL: Exists-Funktion von DAL aufrufen und wenn es ihn nicht gibt, Create-Funktion der DAL aufrufen.

Hm...da aber zwischen den Methodenaufrufen ein Benutzer erstellt werden kann und (in meinem Fall) für die BL keine Transaktion möglich ist (sollte es?), muss ich in der DAL eine entsprechende Funktion implementieren...und hier glaube ich, dass ich mich schon auf dem Holzweg befinde.

?(

09.04.2009 - 14:00 Uhr

(Danke erstmal)

Ja, was der eine intern macht geht keinen was an - soll ja so sein 😉 .

Das es Schnittstellen geben muss ist klar. Aber wer implementiert die Schnittstellen von wem?

Lg
Warappa

09.04.2009 - 13:50 Uhr

verwendetes Datenbanksystem: SQL

Hallo,

irgendwie bekomme ich das Konzept von DAL und BL nicht ganz auf die Reihe.

Das hab ich bis jetzt verstanden (richtig, hoffe ich 😉 ):

DAL abstrahiert die darunterliegende Datenbank/XML-Datei/... indem es den Zugriff über eine einheitliche Schnittstelle (unabhängig des Daten Providers) zur Verfügung stellt.

BL steuert den Programmablauf, erteilt Berechtigungen, prüft die Validität der Daten/Aktionen (also weiß, was die Daten bedeuten z.B. "die Daten zusammen ergeben ein CMS", "Ein Benutzer muss sich angemeldet haben bevor...";)

Meine Frage(n):

  • Was müssen/dürfen die beiden voneinander wissen? Gibt der BL dem DAL Schnittstellen für Methoden und Daten vor, ist es umgekehrt, oder gibt der BL die Methodenschnittstellen und der DAL die Entities vor?

  • Können/düfen/müssen Entities (von DAL) Business-Objekte sein?

Wenn jemand ein bisschen Licht in den dunklen Wald des Vermutens bringen könnte...

Wenn das zu unverständlich war, einfach sagen 😉

Lg
Warappa

02.04.2009 - 11:56 Uhr

Hi Herbivore,

das hatte ich schon befürchtet. Aber wenn man weiß, dass etwas nicht geht, weiß man ja auch schon wieder was 😉

Danke.

Lg
Warappa

02.04.2009 - 11:17 Uhr

Hallo,

ich möchte im Konstruktor eines Attributes auf die Property (PropertyInfo) zugreifen, auf die das Attribut angewendet wird.

Beispiel:

class foo
{
	[MeinAttribut]
	public int Prop
	{
		...
	}
}
[AttributeUsage(AttributeTargets.Property)]
class MeinAttribut:Attribut
{
	private PropertyInfo angewandteProperty=null;
	public MeinAttribut()
	{
		angewandteProperty= GibMirDieAngewandteProperty();
	}
}

Ich möchte nun wissen was ich statt GibMirDieAngewandteProperty() schreiben soll.

Lg
Warappa

04.02.2009 - 21:02 Uhr

Hm...ok, dann muss ich das wohl lassen...(oder etwas "basteln" 😉 )

Danke jedenfalls für die Antworten!

Lg Warappa

03.02.2009 - 22:37 Uhr

Hallo,

ist es möglich die Lokalisierungs-Resourcendateien, die normalerweise als Satelitenassemblies ausgegeben werden, in die Hauptassembly (Exe/Dll) reinzupacken?

Lg
Warappa

23.10.2007 - 13:15 Uhr

Puh,

habs nun doch lösen können 😉

Hier die .browser-Datei, die damit dem IE6.0 entspricht:


<!--
    Vorhandene Browserdefinitionen finden Sie unter
    "<windir>\Microsoft.NET\Framework\<ver>\CONFIG\Browsers".
-->
<browsers>  
  <browser id="Browser" parentID="Default">
    <identification>
      <userAgent match="Browser Version:1.0" />
    </identification>

    <capture>

    </capture>

    <capabilities>
      <capability name="browser"                         value="Browser" />
      <capability name="cookies"                         value="true" />
      <capability name="defaultScreenCharactersHeight"   value="40" />
      <capability name="defaultScreenCharactersWidth"    value="80" />
      <capability name="defaultScreenPixelsHeight"       value="768" />
      <capability name="defaultScreenPixelsWidth"        value="1024" />
      <capability name="inputType"                       value="keyboard" />
      <capability name="isColor"                         value="true" />
      <capability name="isMobileDevice"                  value="false" />
      <capability name="majorversion"                    value="6" />
      <capability name="maximumRenderedPageSize"         value="300000" />
      <capability name="minorversion"                    value="0" />
      <capability name="screenBitDepth"                  value="32" />
      <capability name="screenPixelsHeight"              value="768" />
      <capability name="screenPixelsWidth"               value="1024" />
      <capability name="supportsBold"                    value="true" />
      <capability name="supportsCss"                     value="true" />
      <capability name="supportsDivNoWrap"               value="true" />
      <capability name="supportsFontName"                value="true" />
      <capability name="supportsFontSize"                value="true" />
      <capability name="supportsImageSubmit"             value="true" />
      <capability name="supportsItalic"                  value="true" />
      <capability name="type"                            value="IE6" />
      <capability name="version"                         value="6.0" />

      <capability name="activexcontrols"     value="true" />
      <capability name="backgroundsounds"    value="true" />
      <capability name="cookies"             value="true" />
      <capability name="css1"                value="true" />
      <capability name="css2"                value="true" />
      <capability name="ecmascriptversion"   value="1.2" />
      <capability name="frames"              value="true" />
      <capability name="javaapplets"         value="true" />
      <capability name="javascript"          value="true" />
      <capability name="jscriptversion"          value="5.5" />
      <capability name="ExchangeOmaSupported"    value="true" />
      <capability name="msdomversion"        value="6.0" />
      <capability name="supportsCallback"    value="true" />
      <capability name="supportsFileUpload"  value="true" />
      <capability name="supportsMultilineTextBoxDisplay" value="true" />
      <capability name="supportsMaintainScrollPositionOnPostback" value="true" />
      
      <capability name="supportsXmlHttp"     value="true" />
      <capability name="supportsVCard"       value="true" />
      <capability name="tables"              value="true" />
      <capability name="tagwriter"           value="System.Web.UI.HtmlTextWriter" />
      <capability name="vbscript"            value="true" />
      <capability name="w3cdomversion"       value="1.0" />
      <capability name="xml"                 value="true" />
    </capabilities>
  </browser>

</browsers>

    

Vielleicht hilft das ja jemanden weiter, der irgendwann das selbe Problem hat.

mfg
Warappa

23.10.2007 - 10:53 Uhr

Hallo,

ich habe einen angepassten Browser der auf den IE aufsetzt (WebBrowser-Control). Als User-Agent Kennung gibt er aber Nicht die Standardkennung ala
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)
sondern einfach nur
Browser Version:1.0

Mittels des **Tools Fiddler **hab ich rausgefunden, dass die Datei WebResource.axd und eine der beiden ScriptResource.axd Dateien nicht von meiner Aspx Seite downgeloaded werden -> sie werden einfach nicht zum Download angeboten.

Nun bin ich mir ziemlich sicher, dass Asp meinen Browser nicht als IE identifiziert und deswegen die beiden Dateien nicht liefert, aber im Grunde ist es ja der IE -> WebBrowser.

Ich darf/kann leider die User-Agent Kennung nicht ändern. Nun hab ich nachgeforscht und herausgefunden, dass man mittels einer .browser-Datei das lösen könnte. Leider hab ich das nicht geschafft und die Frage ist, wie man richtig damit umgeht um meine Browserkennung auf den IE zu "mappen".

Bitte helft mir! Allein bekomme ich das nicht hin!

Vielen Dank im Voraus!

Mfg
Warappa

edit: Besserer Titel

02.10.2007 - 16:10 Uhr

Mir wurden die Augen geöffnet!

1000x Danke!

Kein Vergleich zu der Version mit den Expressions!

Euch allen: 👍

02.10.2007 - 16:06 Uhr

Danke für den Hinweis! Dann mach ich mich an die Arbeit! Mal sehen, ob's wirklich schneller wird ("Top, die Wette gilt!" 😉 )

Meld mich dazu nochmal!

mfg
Warappa

02.10.2007 - 15:35 Uhr

Original von BerndFfm
Programmiere das doch selbst und schau dann ob's schneller ist.

8-0 , naja, dann müsste ich irgendwie in den Innereien der DataTable herumstochern um eine Funktion da rein zu schieben, die mir das macht, oder?

Und zuerst alle Einträge zurückgeben und dann mittels for/foreach durch die DataRows durchgehen geht wohl auch am Ziel vorbei (kann mir nicht vorstellen, dass das zurückgeben von >1000 DataRows und ein durchforsten mit einer Schleife schneller geht als mit dem Expression Parameter von Select(), der ja sicher irgendwie auf Hashtables usw. zugreift).

Bitte korrigier mich, wenn ich falsch liege.

mfg
Warappa

02.10.2007 - 14:40 Uhr

Und wie soll es schneller gehen?

Naja, das ist die Frage 😉

Es muss doch die gesammte Table durchsucht werden... ...und genau das wäre die Lösung, wenn's halt nicht die ganze Tabelle durchsuchen würde.

Wenn's nicht geht geht's halt nicht. Aber ich hab gehofft dass es viell. eine Funktion oder einen Parameter gibt, der beim ersten antreffen einer Übereinstimmung abbricht und sozusagen mitteilt "Es existieren Ergebnisse, die den Suchkriterien entsprechen"; so auf die Art

table.SelectOne("id>5")

oder so.

mfg
Warappa

02.10.2007 - 12:14 Uhr

Hi Calexico,

danke für die promte Antwort!

Das hab ich schon probiert, aber je mehr Zeilen in der Table vorhanden sind umso langsamer wird es. Hab es durch ein Compute statt des Select ersetzt mit der expression "count(id)" und dann geschaut, ob der count > 0 ist.

return ((int)actionsTable.Compute("COUNT(ID)","day='"+day+"' and users_id='"+usersID+"'"))>0;

Leider immer noch relativ langsam (PC: P4 2.8 GHz,1.5 GB RAM!) da ich es öfters aufrufe.

Gibt es noch andere Möglichkeiten?

mfg
Warappa

02.10.2007 - 11:41 Uhr

verwendetes Datenbanksystem: DataSet

Hallo,

ich möchte gern performant überprüfen, ob irgendeine Zeile existiert, die in einer Spalte einen bestimmten Wert hat. Was ich suchen würde wäre eine Funktion wie

bool HasRows(string expression)

z.B.

table.HasRows("id=1 and status=3");

oder sowas.

Irgendwer eine Idee?

Danke im Voraus!

mfg
Warappa

12.09.2007 - 09:04 Uhr

Hallo,

ich leite gerade von einem TabControl ab und habe jetzt das Problem, dass die Eingestellte Schriftart (größer, fett) für die TabPage (Header) nicht wirklich für das Bestimmen der Größe des Headers miteinbezogen wird. Der Titel der Page wird irgendwo abgetrennt und in der nächsten Zeile fortgesetzt.

......./--\
----/ Rei ------------------------
........ter

Also wie gesagt, mit der Standard-Schrift geht alles ohne Probleme.

Kann mir jemand eine Lösung sagen?

Danke schon mal im Voraus!

mfg
Warappa

31.08.2007 - 13:35 Uhr

Hallo herbivore,

hm, dann musst du noch die Bereite der Spalte ändern. Oder ich verstehe nicht, was du willst.

Stimmt.

Also muss ich mir bei jeder Größenänderung der ListView die Breite der Spalte neu berechnen. Ist irgendwie blöd, da es ja sein kann, dass eine Scrollbar da ist oder auch nicht.

Hatte gehofft, dass ich mir nur wieder etwas Augensalbe für besseres Hilfelesen kaufen muss. Naja, anscheinend gehen die Augen noch 😉

Danke jedenfalls!

mfg
Warappa

31.08.2007 - 13:07 Uhr

Hallo herbivore,

danke für die schnelle Antwort. Leider ist das nicht das, was ich versuche zu erreichen.
Eigentlich möchte ich die ganze Column bei einem **Resize der ListView **"verrutschen", sodass sie zwar im Bild bleibt, aber eben ganz Rechts außen anliegt.

Ich hoffe ich hab mich verständlich ausgedrückt 😉

mfg
Warappa

31.08.2007 - 12:35 Uhr

Hallo,

ist es möglich, dass man eine Spalte einer ListView so einstellt, dass sie sich immer rechts am Rand ausrichtet?

mfg
Warappa

16.07.2007 - 14:24 Uhr

Hi,

ich hab ein kleines, großes Problem:

Ich möchte überprüfen können, ob ein Benutzer (Benutzername, Passwort, Domäne) auf dem PC existiert und ob er ein Admin ist.

Mit LogonUser klappt das ja auch ganz gut - wenn man Windows 2000 aussen vor lässt (unter win2000 bräuchte man dazu nämlich GANZ spezielle Rechte)

Jetzt hab ich im Internet gesucht und bin auf SSPI gestoßen und auch auf eine Verifizierung. Ich hab das auch bei mir getestet und es hat funkioniert.

Leider habe ich jetzt festellen müssen, dass bei manchen Systemen diese Art der Anmeldung nicht funktionieren will!
Ich glaube es liegt daran, dass die PCs, auf denen es funktioniert, in einer Domäne hängen, während die PCs, die in keiner Domäne hängen, folgenden Fehler bringen:


System.Security.Authentication.InvalidCredentialException: The server has rejected the client credentials. ---> System.ComponentModel.Win32Exception: The logon attempt failed
--- End of inner exception stack trace ---
at System.Net.Security.NegoState.ProcessAthentication(LazyAsyncResult lazyResult)
at System.Net.Security.NegotiateStream.AuthenticateAsClient(NetworkCredential credential, String targetName, ProtectionLevel requiredProtectionLevel, TokenImpersonationLevel allowedImpersonationLevel)

Kann damit irgendjemand was anfangen und mir helfen?

Freue mich über jeden Hinweis!

Mfg
Warappa

edit:
Hier noch der Link zur gefundenen SSPI Verifizierung:
http://www.pluralsight.com/wiki/default.aspx/Keith.GuideBook/HowToGetATokenForAUser.html

06.07.2007 - 09:59 Uhr

(SRY dass ich den Thread wieder aufwärme)

Nein, XP SP2 (Servicepackfeature? 😉 )

15.06.2007 - 14:18 Uhr

Hallo,

ich hab wieder mal ein kleines Problem:
Ein Programm liest mit Hilfe von FileVersionInfo die Version einer anderen Datei aus.

Einmal gehts, einmal nicht!?

  1. Geht
    **Im Explorer **zu der Exe-Datei gehen, starten und er spuckt die RICHTIGE Dateiversion der überprüften dll aus.

  2. Geht nicht
    Exe über Sharpdevelop (IDE) starten; er findet die Datei, nennt aber die ALTE VERSIONSNUMMER. Die Datei wurde durch eine neuere ersetzt und im Windows Explorer zeigt er auch die RICHTIGE Version an!?

Die Datei, die verglichen wird, beim 1. Mal heruntergeladen, d.h. die Version MUSS die SELBE sein.

Außerdem hab ich absolute Pfade, die lass ich mir auch ausgeben, d.h. auch keine andere Datei wird gezogen.

Interessant: Andere Dateien werden **richtig interpretiert **obwohl da anundfürsich nichts anders ist-> nur diese Datei!

Ich weiß, langes Intro aber kann mir da jemand helfen?

Danke schon mal!

Mfg
Warappa

14.06.2007 - 19:33 Uhr

Aaaahhh...damit der Serializer nicht jedes Mal zur Laufzeit erzeugt werden muss!

Danke talla!

mfg
Warappa

14.06.2007 - 16:17 Uhr

Hat denn keiner eine Idee?

14.06.2007 - 13:03 Uhr

Hallo,

nur mal so eine Frage:

Wenn ich mein Projekt in der Konfiguration "Debug" erstelle bekomme ich nur eine Exe-Datei.
Wenn ich mein Projekt hingegen unter **"Release" **erstelle, bekomme ich eine Exe und eine "XXX.XmlSerializers.dll" erzeugt.

Warum ist das so?

Danke schon mal im Voraus.

mfg
Warappa

27.04.2007 - 16:46 Uhr

Hi,

ich brauchte mal einen Benutzernamen und da ich nicht eine dämliche Name+Zahl Kombination nehmen wollte und mir auf die schnelle kein Name von irgendetwas Besonderen einfiel, erfand ich ein Nonsense-Wort: Warappa!

Holpert leichtfüßig über die Lippen und ist einzigartig 😉 !

mfg
Warappa

28.03.2007 - 10:51 Uhr

Hallo,

habs selbst rausgefunden:

Man braucht die Schnittstelle IWebbrowser2 aus der COM-Datei "ShDocVW.dll" (Microsoft Internet Controls) dann folgender Code:

object oOut=new Object();
object oIn=(int)fontSize; //1...4, NUR Int32!

((SHDocVw.IWebBrowser2)(webBrowser1.ActiveXInstance)).ExecWB(
SHDocVw.OLECMDID.OLECMDID_ZOOM,
SHDocVw.OLECMDEXECOPT.OLECMDEXECOPT_DONTPROMPTUSER,
ref oIn,
ref oOut);

oIn: Int32 Zahl, Schriftgrad von 1 bis 4
oOut: Int32 Zahl, Schriftgrad nach ausführen der Funktion
Ich hoffe, dass das jemanden da draußen das lange Suchen erspart!

Mfg
Warappa

27.03.2007 - 16:24 Uhr

Hallo,

ich habe das Webbrowser-Steuerelement (2.0) in meine Form eingebaut. Nun habe ich 2 Buttons: 1er soll die Schrift (NUR die Schrift) kleiner und der andere größer machen.

Bin schon auf

webBrowser.Document.Body.Style = "zoom: 200%"

gestoßen, das verkleinert/vergrößert aber ALLES.

Dann hab ich es mit


HTMLDocument hDoc = (HTMLDocument)webBrowser1.Document.DomDocument;
IHTMLTxtRange textSelection = (IHTMLTxtRange)hDoc.selection.createRange();           
textSelection.expand("textedit");
textSelection.select();

hDoc.execCommand("FontSize", false, 7);

hDoc.selection.empty();

über die DOM des Webbrowsers und der Funktion **ExecCommand **versucht, das verkleinert/vergrößert zwar den Text, aber die relativen Unterschiede zwischen den Textblöcken werden durch ein und die selbe Schriftgröße ersetzt. (d.h. font1 12px, font2 20px -> **BEIDE **Größe 7)

Jetzt die eigentliche Frage:
Wie kann ich die Schrift kleiner/größer machen (wie im IE unter Ansicht->Schriftgrad)?

Danke schon mal fürs Durchlesen 😉

Und danke im Voraus für die Antworten!

mfg
Warappa

15.02.2007 - 09:43 Uhr

Für jemanden mit dem gleichen Problem, hier eine kleine Seite die ich gefunden hab:
http://www.pindari.com/

mfg
Warappa

12.02.2007 - 17:04 Uhr

Hi,

ich komm aus der C++ Ecke und ein Buch, dass mir wirklich geholfen hat, C++ mit Zeigern etc. zu verstehen ist das "C++ Das Grundlagenbuch" von Data Becker. Hat zwar wenig von Windows Programmierung aber ist echt 1A wenns um Zeiger u.ä. geht!

Würde ich JEDEM empfehlen, der C++ lernen will.

Grundsätzlich: Ein Buch würde ich für jede Programmiersprache mit der man Arbeitet empfehlen, da man hier verlässliche Referenzen findet und sich manche "komischen" Probleme ("Zugriffsebene?!",...) leichter lösen lassen.

mfg
Warappa

12.02.2007 - 16:23 Uhr

Naja, ich kann schon die Bilder herauslesen und darauf verlinken; Text sowieso.

Was ich brauche ist nur noch das Verständnis, woran ich erkenne, dass jetzt ein <table>, dann ein neues <tr> und zuletzt ein <td> erzeugt werden muss (und natürlich auch umgekehrt).

...es soll nicht alles mögliche können sondern nur Text (fett, kursiv, Größe), Tabellen und Bilder.

12.02.2007 - 16:02 Uhr

Naja, wenn möglich möchte ich das selbst abdecken. Also eher nein (mit der "ja-wenn-(praktisch)-zu-umständlich"-Option)

Hab mir NRTF-Tree (NRTF-Tree) geholt und schon ein bisschen gecheckt um was es da geht, aber ein paar banale Infos brauche ich halt eben noch dazu (s.o) (Source ist español).