Laden...

Forenbeiträge von sheitman Ingesamt 1.047 Beiträge

05.03.2007 - 15:47 Uhr

wie oben schon geschrieben war ists nicht besonders gut einfach so den prozess zu killn.letzlich verdeckt man damit nur das man selbst das problem nicht anders in den griff bekommen hat.

falsl du mal ein com-addin entwickelst stehst du eh wieder vor dem selben problem. und da kannst du wirklich nicht einfach den prozess abschießen... und unsaubere addins sind oft das quell so manch einen übels^^

02.03.2007 - 11:37 Uhr

dann solltest du vorm schließen mal

_os.RowChanged -= new EventHandler(_os_RowChanged);  

aufrufen

23.02.2007 - 15:12 Uhr

google hat die seite hier ausgespuckt =)

http://www.thescripts.com/forum/thread224385.html

> but how do I Convert this Byte array back into float?:::

Try BitConverter.ToSingle()

This is a single precision IEEE-754 floating point number (a float in other
words)

Oscar.

23.02.2007 - 10:19 Uhr

doch, einfach rein kopieren

22.02.2007 - 13:50 Uhr

ich fürchte da gibts keine lösung.... du könntest dir natürlich ein programm schreiben was die ornder durchgeht und dann dieses xml codefragemtn erstellt, indem es alle ordner rekursiv durchgeht...

als id kannst du ja ne guid nehmen

20.02.2007 - 18:03 Uhr

In deinem Vorschlag leitest du von einer Klasse ab und fügst Properties für bestimmte Zugriffe hinzu. In meinem mache ich das prinzipiell genauso, mit einem Unterschied: von aussen ist bei deinen Subklassen nicht klar, dass sie die Eigenschaft überhaupt besitzen, dh bei dir würde (ParentClass)Object.Property nicht funktionieren. und genau diesen Aufruf würde ich ja in der Containerklasse benutzen - dh die Containerklasse macht bei mir einen Aufruf des Interfaces, nicht der konkreten Klasse (das meinte ich mit dem "Comic"). (IMightBeWritable).Object.Property funktioniert naemlich, ohne dass der Aufrufende einen Schimmer haben muss, ob er die Property setzen darf oder nicht.

nein.in meinem vorschlag würde in der abstrakten oberklasse für das property lediglich der rumpf stehen, die implementierung müßte dann in der unterklasse erfolgen...

da ich jetzt nicht genau die syntax von c# in der richtung kenne nicht teeren und federn bitte, ich korrigierdsa morgen

abstract class AbstractObject {
    public abstract string Contact { get; set };
    public string Owner { get {return owner;} }
}

class WriteableChild : AbstractObject {
    public string Contact { get {...}; set {...} };
}

class ReadonlyChild : AbstractObject {
    public string Contact { get {...}; set {...}};
}

nun geht das hier durchaus


AbstractObject o = new ReadonlyChild();
o.Contact = "test"; //da soll dann die exception kommen

vorteil von deinen ist nun, das man im nachhinein noch properties hinzufügen kann, ohne die elternklasse zu verändern... und man kann sie schachteln
das entspricht ja einem pattern, weiß net ob es dsa visitor war 🤔

20.02.2007 - 16:51 Uhr

hm, ich finde dann aber dein design etwas fragwürdig...

denn was mir vor schwebte, um den aufwand einzugrenzen, wäre eine abstrakte oberklasse, die alle gemeinsamen implementationen enthält, und subklassen, die dann dieses readonly abdecken... denn genau das machst du ja jetzt auch nur wieder in gewissen sinne... in sofern brauch man keine interfaces...

20.02.2007 - 15:54 Uhr

wie würde das dann bei dem hier vorliegenden fall aussehen?

20.02.2007 - 15:33 Uhr

vielleicht solltest du mal den debugger bemühen um herauszufinden wo es knallt

zunächst einmal schein man die menüleiste oben nicht ausblenden zu können. zumindest geht es über das word menü nicht. desweiteren kann es sein das du ne exception bekoommst bei menüleisten die garnicht aktiviert sind... (enabled)

du solltest dsa programm dan nauch so schreiben das du dir merkst, welche symbolleisten aktiviert und sichtbar waren und am ende dann den rohzustand wieder herstellen.

zum testen würd ich dir übrigens raten das alles erstmal über vba zu machen, dann sparste auch das ständige neu compilieren^^

wenn dir google und co zuviel ausspucken dann grenz es mehr ein, benutz englische begriffe, benutzt das "+" und such auch mal in den google groups... nur mal so am rande 🙂

20.02.2007 - 15:20 Uhr

ausgehend von folgendem post

Original von LaTino
So geht's auch, ist aber nicht so flexibel wie Factory.

(ich tipp' das hier nur im Browser, dh keine Pistole auf Richtigkeit/Vollständigkeit)

  
public Interface IMightBeWriteable   
{  
  public string Caption { get; set; }  
}  
  
public class Writeable : IMightBeWriteable   
{  
  private string _caption;  
  public string Caption { get { return _caption; } set { _caption = value; } }  
}  
public class CertainlyNotWritable : IMightBeWritable  
{  
  private string _caption;  
  public string Caption { get { return _caption; } set { throw new AccessDeniedException(); } }  
}  
  

Deine Objekte lieferst du dann wahlweise als Writable oder CertainlyNotWritable. Das haengt vom Aufruf durch das Containerobjekt ab. Dann ist es nur noch (IMightBeWritable)myObject.Caption, und dir ist in dem Moment egal, ob man nun schreiben darf, oder nicht. Letzten Endes ist das aber nix anderes als der Vorschlag in meiner ersten Antwort 😁

LaTino
EDIT: kurzer Nachtrag

wird ja ersichtlich, das man bei interfaces 2 implementierungen gebraucht hätte... Writeable und CertainlyNotWritable
da beide klassen sich nur dadurch unterscheiden das gewisse properties beim set eine exception werfen, würde alles andere gleich sein
daher kam der einwurf mit doppelten aufwand, weil beide klassen ansonten identische properties und methoden etc. haben.

soviel mal als schiedsrichter 😉

20.02.2007 - 09:33 Uhr

Fehler bei der lokalen Berichtsverarbeitung.
Die Berichtsdefinition des Berichts 'rmDetail.rdlc' wurde nicht gefunden

würd ich mal vermuten er hat die datei nicht gefunden... pfad überprüfen mit debugger...

"Für die DatenDataSet_qmBerichtsdaten-Datenquelle wurde keine Datenquelleninstanz angegeben"

dein Feher liegt hier

rptSource.Name = reportName;

in meinem code

rptSource.Name = "Schlage_Budget_BudgetSollIstData"

bezeichnet Schlage_Budget_BudgetSollIstData den namen der datenquelle die im bericht benutzt wird. (wenn ihc mich recht erinnere^^)

von daher müßte es bei dir so heißen

rptSource.Name = "DatenDataSet_qmBerichtsdaten"
19.02.2007 - 17:53 Uhr

hab nicht viel zeit drum zeig ich dir mal wie ich das gemacht habe als code.
falls noch fragen sind antworte ich morgen dann.


private void LoadBudgetSollIstReport() {
	reportViewer1.Reset();
	ReportDataSource rptSource = new ReportDataSource();
	rptSource.Name = "Schlage_Budget_BudgetSollIstData";
	rptSource.Value = reportBindingSource1;

	reportViewer1.LocalReport.DataSources.Clear();
	reportViewer1.LocalReport.DataSources.Add(rptSource);
	reportViewer1.LocalReport.ReportEmbeddedResource = "Schlage.Budget.BudgetSollIst.rdlc";
	reportViewer1.LocalReport.SetParameters(new ReportParameter[] { m_parameterJahr });

	reportBindingSource1.DataSource = m_BudgetSollIstDataList;            
	reportViewer1.RefreshReport();
}
19.02.2007 - 09:55 Uhr

würd sagen schau dir mal mit dem debugger an wie die zeichenkette aussieht die er im ToDouble benutzen möchte...

ansonsten gibt es noch Convert.ToDouble(String, IFormatProvider)

der zweite parameter gibt dabei vor wie der string formatiert ist bzw. wie er mit der formatierung umgehen soll (, oder . als kommazeichen etc.) ... einfach mal in die hilfe schaun

16.02.2007 - 09:57 Uhr

um von string nach double zu konvertieren kannst du

double d = Convert.ToDouble("2.3");

du kansnt statt nem dataset auch einfach mit datatable arbeiten 😉

16.02.2007 - 09:44 Uhr

kannst du den baum mal aufmalen den du oben beschreibt?

14.02.2007 - 12:34 Uhr

geht auch sowas?

select objnr from objaus where barcode like '41%'

LIKE (SQL Server Everywhere)

Determines whether a given character string matches a specified pattern. A pattern can include regular characters and wildcard characters. During pattern matching, regular characters must match exactly the characters specified in the character string. Wildcard characters, however, can be matched with arbitrary fragments of the character string. Using wildcard characters makes the LIKE operator more flexible than using the = and != string comparison operators. If any of the arguments are not of a character string data type, Microsoft SQL Server 2005 Everywhere Edition (SQL Server Everywhere) converts them to a character string data type, if possible.

Syntax

match_expression [ NOT ] LIKE pattern [ ESCAPE escape_character ]

Arguments
match_expression
Any valid expression in SQL Server Everywhere of nchar, nvarchar, or ntext data type.

pattern
The pattern to search for in match_expression. It can include the following valid SQL Server Everywhere wildcard characters:

Wildcard character Description Example
%
Any string of zero or more characters.
WHERE title LIKE '%computer%' finds all book titles with the word 'computer' anywhere in the book title.

_ (underscore)
Any single character.
WHERE au_fname LIKE '_ean' finds all four-letter first names that end with ean, such as Dean or Sean.

escape_character
Any valid expression in SQL Server Everywhere of any of the data types of the character string data type category. The escape_character argument has no default and must consist of only one character.

Result Types
bit

Return Value
LIKE returns TRUE if the match_expression matches the specified pattern.

14.02.2007 - 12:27 Uhr

wie ich schon schrieb, mir war bisher nur bekannt das like bei zeichenketten funktioniert, nicht aber bei int und so... war ic hda bisher einem irrtum verfallen oder liegt hierin das problem das du nichts zurück bekommst?

14.02.2007 - 11:52 Uhr

ich wußte noch garnicht das like auch auf spalten die vom typ her keine zeichenketten sind funktionieren o.O

14.02.2007 - 09:44 Uhr

das problem ebsteht wohl in dem codeabschnitt

List<string> innerListe = new List<string>();
for (int e = 0; e < liste.Count; e++) {
    innerListe = new List<string>();
    for (int i = 0; i < myStringArray.Length; i++) {
        innerListe.Add(myStringArray[i]);
    }
    liste.Add(innerListe);
}
for (int e = 0; e < liste.Count; e++) {

macht ja keinen sinn, da deine liste ja noch leer ist... diese äußere schleife kann imho komplett enfallen

übrig bleibt dann

innerListe = new List<string>();
for (int i = 0; i < myStringArray.Length; i++) {
    innerListe.Add(myStringArray[i]);
}
liste.Add(innerListe);

was funktionieren und ausreichen müßte

komplett würde das also so aussehen


static void Main(string[] args) {
    FileStream stream = new FileStream("c:\\mdaten\\text2klein.txt", FileMode.Open);
    StreamReader objReader = new StreamReader(stream);
    string myString = "";
    string[] myStringArray;
    List<List<string>> liste = new List<List<string>>();
    List<string> innerListe = null;

    while ((myString = objReader.ReadLine()) != null) {
        if (myString.Length > 1) { //SOLLTE DAS NICHT > 0 SEIN UND MIT TRIM()?
             //String wird gesplittet und jeder wert ein einem array gespeichert           
            myStringArray = myString.Trim().Split(new char[]{ ' ', '\n', '\t' });

            innerListe = new List<string>();
            for (int i = 0; i < myStringArray.Length; i++) {
                innerListe.Add(myStringArray[i]);
            }
            liste.Add(innerListe);
        }
    }
}

13.02.2007 - 16:51 Uhr

List<List<string>> liste = new List<List<string>>();

List<string> eintrag = new List<string>();
eintrag.Add("Hallo!");
liste.Add(eintrag);

eintrag = new List<string>();
eintrag.Add("Na");
eintrag.Add("wie");
eintrag.Add("gehts?");
liste.Add(eintrag);

foreach(List<string> element in liste) {
    foreach(string s in element) {
        Console.WriteLine("{0} ",s);
    }
    Console.WriteLine();
}

Sollte dann ausgeben

Hallo!
Na wie gehts?

12.02.2007 - 15:31 Uhr

ok, da hab ich mich wiedermal vertan und bin meiner reschtschreibschwäche auf den leim gegangen... dachte gerade noch paket wird packet geschrieben... das packet ein englisches wort ist hatte ich garnicht bedacht o.O

nun ja, daskind hat ja nun nen neuen namen und ich finde paßt sehr gut =)

12.02.2007 - 15:09 Uhr

PacketAdmin finde ich ist nicht so gut, Packet klingt irgendwie mehr nach Netzwerk. PackageAdmin finde ich da besser.

Das Package das englische Wort für Packet ist weißt du aber, oder? 😉

Fände beide Namen nicht so praktisch.

SoftwareAdmin klingt da schon bissl besser 🙂

09.02.2007 - 13:40 Uhr

du kannst in word auch addins einbinden die aus einer dot datei bestehen

wenn du ma lauf extras -> vorlagen und addins gehst, siehst du unten eine liste wo diese aufgeführt werden
über buttons kannste auch welche hinzufügen, entfernen etc.

wir haben das hier in der firma auch so realisiert.

im grunde gehst du folgender maßen vor:
du erstellst eine neue dot datei, in der du alle makros rein packst und die symbolleisten über die du deine makros aufrufen möchtest
die datei kannst du dann als addin einbinden... wenn du sie im startup verzeichnis hinterlegst lädt word sie sogar automatisch mit

somit kannst du rel. einfach neue symbolleisten mit neuen funktionen hinzufügen

kommt halt nun drauf an was für funktionen du so anbieten wolltest, denn diese müßtest du hier eben mit vba umsetzen

09.02.2007 - 09:15 Uhr

Ich hab's jetzt folgendermaßen gemacht:
Anstatt auf die -1 von Read() zu warten, ist die Abbruchbedingung NetworkStream.DataAvailable.

würd ich nicht machen... hatte ich auch so gehabt aber da kam es zu problemen

das problem ist, das du die abfrage machst ob daten verfügbar sind und ein false zurück bekommst, wei lder server noch nicht so weit war um zu senden...

deshalb hab ich auch keine while schleife genommen sondern eine do schleife
das read wartet so lange bis daten ankommen, damit wäre das problem der zeit schon mal gelöst

um nun den deadlock zu verhindern das client und server beide lesen ha bich das dataavailable in di eabbruchbedingung der do...while schleife mit rein gebaut

also ich würds so lassen wie ich es gepostet hab, weil anders gabs bei mir ab und an probleme 🙂

nachtrag:
seh gerade das du ja deine alte schleife weiterhin benutzt... hät ich mir die mühe auch sparen können 🙁

nagut, mal ne anmerkung zu deiner schleife:
es ist unsinnig mit einem byte array der länge 1 zu arbeiten, weil es auch eine methode gibt die nur das nächste byte ausliest...
dann ist es eh unsinnig byteweise auszulesen, der networkstream hat einen internen lesebuffer von 8kbyte... d.h. du kansnt locker immer ein paar kbyte gleichzeitig abfragen... genau das was ich mit dem buffer gemacht habe

08.02.2007 - 17:58 Uhr

hab den code oben nochmal geändert, warn noch paar änderungen drin

also die 1024 bei memorystream bedeutet folgendes

Die Anfangsgröße des internen Arrays in Bytes.

buffer, das byte[1024] wird ja immer wieder benutzt
ich lese zeichen in buffer ein, und schreibe diese dann in den memorystream,
dann les ich wieder zeichen in buffer ein und schreib sie wieder in den memory stream, usw.

von daher ist dir größe von buffer unwichtig... deine daten landen erstmal alle im memorystream
mit dem wird dann weiter gearbeitet....

probier es mit einer längern nachrichtaus, wirst sehen es funktioniert...
mach schrittweises durchgehen mit dem debuger und schau dir den inhalt an... oder les mal ein buch für dateioperationen^^

08.02.2007 - 16:58 Uhr

die 1024 sind nur für den puffer

die eigentlich nachricht wird zunächst in einem memorystream gespeichert... seine größe wächst dynamisch mit. nach der übertragung wird ja auch der inhalt vom memorystream bentuzt um die nachricht in text wieder umzuwandeln.

nachtrag:
ok, das hang wieder in der schleife, da ein kleiner deadlock vorhanden war...
der server wollte nach dem write sofort daten lesen, während der client aber auch nochmal daten lesen wollte, und read anscheinden nicht abbricht wenn keien daten vorhanden sind.. von daher tut es dieses nun

Client:

//Verbindung zum Server aufbauen
TcpClient client = new TcpClient("localhost", 4711);
//Hole den Stream für's lesen und schreiben
NetworkStream netStream = client.GetStream();
//Puffer für Nachrichtenteile
byte[] buffer = new byte[1024];
//Zwischenspeicher für die Nachricht im byte-Format
MemoryStream memStream = new MemoryStream(buffer.Length);
//Nachricht einlesen und zwischenspeichern
int numRead = 0;
do {
    numRead = netStream.Read(buffer, 0, buffer.Length);
    memStream.Write(buffer, 0, numRead);
} while (numRead > 0 && netStream.DataAvailable);
//Nachricht in String konvertieren
String text = Encoding.ASCII.GetString(memStream.ToArray());
Console.WriteLine("Nachricht vom Server: {0}", text);
//Client Infos an Server schicken
byte[] nachricht = Encoding.ASCII.GetBytes ("Benutzer_Info: " + Convert.ToString(IPAdresse()));
//Sende die Bytes zum Server
netStream.Write(nachricht, 0, nachricht.Length );
//Schließe die Verbindung zum Server
client.Close ();
Console.Write("\t Beenden... [ENTER]");
Console.ReadLine();

Server:

//Setze Flag für "Thread läuft"
this.running = true;
//Hole den Stream für's schreiben
NetworkStream ClientStream = this.TCPClient.GetStream ();
byte[] nachricht = Encoding.ASCII.GetBytes("Hallo");
//Sende die Bytes zum Client
ClientStream.Write(nachricht, 0, nachricht.Length);
ClientStream.Flush();
//Client Infos empfangen
byte[] buffer = new byte[1024];
//Zwischenspeicher für die Nachricht im byte-Format
MemoryStream memStream = new MemoryStream(buffer.Length);
//Nachricht einlesen und zwischenspeichern
int numRead = 0;
do {
    numRead = ClientStream.Read(buffer, 0, buffer.Length);
    memStream.Write(buffer, 0, numRead);
} while (numRead > 0 && ClientStream.DataAvailable);
//Wandle den Inhalt des Byte-Array in ein String um
string stringClientNachricht = Encoding.ASCII.GetString(memStream.ToArray());
//Gib die Nachricht des Servers auf der Console aus
Console.WriteLine(stringClientNachricht);
//Neuen Client mit den Infoes in die ClientListe rein schreiben
ClientListe.Add(stringClientNachricht);			
//Schließe die Verbindung zum Client
this.TCPClient.Close ();
//Setze das Flag "Thread läuft" zurück
this.running = false;

was noch eingebaut werden sollte ist exception management und verwendung von using()

edit:
noch paar fehler entfernt, servercode hinzugefügt

08.02.2007 - 15:51 Uhr

kannst du mal irgendwie den vollständigen code posten?
verfolge das jettz shcon ne weile hier mit und frag mich echt wo das problem ist... nicht persönlich nehmen bitte

nachtrag:
probiers mal hiermit

TcpClient client = new TcpClient(...);
NetworkStream netStream = client.GetStream();
byte[] buffer = new byte[1024];

MemoryStream memStream = new MemoryStream(buffer.Length);

int numRead = 0;
do {
    numRead = netStream.Read(buffer, 0, buffer.Length);
    memStream.Write(buffer, 0, numRead);
} while (numRead > 0);
String text = Encoding.ASCII.GetString(memStream.GetBuffer(),0,(int)memStream.Length);
08.02.2007 - 09:05 Uhr

hast du deinem chef auch mal borgs bat gezeigt und ihm gesagt das damit das externe programm überflüssig ist?

08.02.2007 - 09:03 Uhr

hast du denn mal über lösung eines reinen dot-addins nachgedacht?

07.02.2007 - 08:50 Uhr

kannst dir sonst auch mal den report viewer anschaun. der hat eine exportfunktion für pdf. die berichte würden dan nwenigstens auch ordentlich aussehen =)

http://www.gotreportviewer.com/

07.02.2007 - 08:41 Uhr

Gibt TOP wirklich den ersten Datensatz zurück

ja, macht es eigentlich

von daher versteh ich den unterschied auch nicht. wenn ich richtig verstanden hab unterscheiden sich beide queries lediglich durch das top 1...
vermutlich steckt aber hinter top etwas nicht ganz triviales wie wir wohl vermuten... gibt es denn im ausführungsplan wesentliche unterschiede? mal nachgeschaut?

05.02.2007 - 13:36 Uhr

deshalb habe ich Befehle wie xdel nicht mehr gelernt, weil der Commander solche und viele andere Arbeiten sehr erleichtert xdel gehört nicht zu windows von daher "kenne lernen" gibts da eh nicht^^

02.02.2007 - 10:30 Uhr

sofern ich weiß funktiuonieren com-addins nur in office 2000 und höher... aber du könntest dir word-addins basteln...

kommt halt drauf an was dein addin leisten soll... rein für zusätzliche symbolleisten reicht das auch

31.01.2007 - 11:07 Uhr
31.01.2007 - 09:21 Uhr

hast du es mal mit direktem referenzieren der interop assemblies probiert?

30.01.2007 - 16:23 Uhr

Wenn du ne navi 200px breit machst, und den rest "automatisch".

Dann ist doch deine Navi auf ner Auflösung von 1920xirgendwas "sauschmal" und bei ner Auflösung von 640x480 "saugross" ?

ja bei sowas müßte man mit rel. angaben arbeiten, z.b. navi soll immer 20% von bildschirmbreite breit sein...

aber bei tabellen würde ich das auch nicht anders machen. wie machst du das denn momentan?

rein der "div is mir hier zu kompliziert und zu doof an der stelle" würd ich dir auch raten einfach tabellen zu nehmen. wenn du irgendwann mal die zeit und interesse hast zu schaun obs nicht doch nen weg mit div und css gibt, kannst es immernoch anpassen.

30.01.2007 - 15:33 Uhr

ok, du müßtest halt viele divs verschachteln... nen rahmen zeichnen kann man ja auch durch 2 divs hinbekommen...

und als breite kannst du auch hier rel. angaben machen

bei tabellen mußt du auch nur spaltenbreiten vorgeben... ändert also nichts...

<html>
	<head>
	</head>
	<body>
		<div style="width:400px;background-color:green;">
			<div style="background-color:yellow;margin:1px;">test</div>
		</div>
		<br />
		<div style="width:20%;background-color:green;">
			<div style="background-color:yellow;margin:1px;">test</div>
		</div>
		
	</body>
</html>
30.01.2007 - 14:56 Uhr

ja gut, das stimmt wohl. warum kannst du das nicht benutzen?

30.01.2007 - 14:35 Uhr

es ist nicht dumm... divs kann man ja positionieren. hab persönlich auch schon layouts gesehen da lagen diese 2 divs nebeneinander.

nachtrag:

<html>
	<head>
	</head>
	<body>
		<div>
			<div style="background-color:green;float:left;width=100px;">div1</div>
			<div style="background-color:red;float:left;width=100px;">div2</div>
		</div>
	</body>
</html>
30.01.2007 - 13:34 Uhr

lad dir mal die interops von office 2003 von der microsoft seite runter. entfern alle referenzen aus deinem projekt auf die bisherigen interops und setze sie manuell auf die runtergeladenen assemblies. probiers dann nochmal.kann sein du mußt die dann mit ausliefern.

30.01.2007 - 13:31 Uhr

Z.B:

"Data Source=VMKL002;Initial Catalog=aspnetdb;Integrated Security=True"

Bei der Windows Authentifizierung brauchst du keinen Benutzer übergen nur Integrated Security

dann benutzt er aber den lokalen bneutzer um sich damit auf dem server zu authentifizieren oder?
wir haben aber keien windowsdomäne... also die bnetuzer melden sich nicht am windows server an und die muß es dort auch nicht geben... o.O

Es macht beides Sinn sowohl die interne Benutzerverwaltung in der Anwendung als auch die Benutzerveraltung auf Windowsebene. Auf Windowsebene legst du halt mehrere Rolen an und übergibst diese an die DB und an die bestimmten Benutzer.
Auf Anwendungsebene gibt es ja dann auch die Rolenbasierten Attribute, über die du dan auch lokal deine Zugriffsrechte auf Methoden verwalten kannst.

mir scheint ich sollte mich mal auf die suche nach etwas literatur begeben da ich grad feststellen mußte das ich davon keinen plan hab^^

30.01.2007 - 13:20 Uhr

@borg
danke, das problem ist aber, wie oben schon beschrieben, das ich über cookies auf der seite als angemeldet gelte. der webclient benutzt aber diese cookies nicht. oder kann man das bei ihm aktivieren?

nachtrag:
ok hab grad selbst anwort gefunden.. muß wohl ne andere klasse benutzen

HttpWebRequest r = (HttpWebRequest) WebRequest.Create(myURI);
r.CookieContainer = new CookieContainer();
30.01.2007 - 10:03 Uhr

Original von ScaniaV8
Nicht wennst du Active Directory verwendest und ein Dienstkonto zb "ServiceSQL" erstellst über die alle Benutzer auf den SQL Server zugreifen können. Den ServiceSQL gibst du dann im Sql server bekannt übergibst im die benötigten Rechte usw.

Auch mal über den Administrator nachdenken, manchmal hat er einfach zuviele Rechte!

Also d.h. auf dem Windows Server das Konto "ServiceSQL" einrichten und dem dann in der Datenbank die Rechte geben mit denen er arbeiten soll?
Z.b. nur Zugriff auf eine bestimtme Datenbank und so...

Beb ich dann im Connection String die Daten von "ServiceSQL" als Benutzer an?
Habt ihr da mal nen Link oder nen Beispiel zur Hand? 🙂

Ne andere Frage ist noch, wenn man den Nutzern verschiedene Rechte innerhalb der Anwendung erlauben möchte, z.B. für die Anwendung Administrator oder nur normaler User, wie würdet ihr das unterscheiden?
Geht dann ja nur über ne eigene Benutzerverwaltung nochmal oder?

30.01.2007 - 09:42 Uhr

vielleicht wäre es auch eine gute idee mal im mysql forum bzw. dem forum für den connector dein problem zu schildern.

30.01.2007 - 09:33 Uhr

dann müßte ich am db-server aber auch jeden nutzer einrichten oder?

30.01.2007 - 09:15 Uhr

Hi

Folgendes Szenario:
Eine kleine Datenbankanwendung, realisiert als WinForms Client, soll mit einem Datenbankserver der intern im LAN einer Firma zur Verfügung steht arbeiten.

Mir kam dabei gerade die Frage der Sicherheit auf:
Wie kann ich verhindern das jemand sich nen SQL Browser holt, zur Datenbank verknbindet und munter SQL Statements abgeben kann, man aberauch aus anderen Anwendungen Zugriff drauf haben sollte?

Als Datenbanksrever kam mir MS SQL Server Express erstmal in den Kopf.
Das Netzwerk ist ein Novell-Netz, gibt aber auch ein paar Windows Server.

Macht es sinn innerhalb der Datenbank nur mit StoredProcedures zu arbeiten und keien direkten Statements zu erlauben für bestimmte Nutzer?

Gruß,
Sven

30.01.2007 - 09:08 Uhr

sonst keiner einer idee?

eventuell ne alternative als vorschlag?

30.01.2007 - 08:55 Uhr

aber verstehst du, dass ich so codezeilen von dir ohne klare hinweise was diese tun, nicht verstehe? mir fehlt seeehr viel basiswissen.. aber dies ich auch ein crashkurs..

kann ich gut nachvollziehen... geht mir auch manchmal so
aber auch wenn du nicht viel zeit hast, schlag die klassen in der doku nach und lies dir die beschreibung der methoden durch
dann weiß du genau was sie machen und es bringt dir auch mehr

es hilft auch einfach mal die klasse in der hilfe anzuspringen und sich die methoden und deren beschreibung durchzulesen
dann findest du selbst schnell lösungen für deine probleme.

ansonsten ist ja vieles rein vom namen her selbtserklärend... eine methode Clear wird irgendwas wieder "säubern", Add etwas hinzufügen usw.

29.01.2007 - 16:16 Uhr

das warn produktive hinweise... wenn es dir nicht hilf dann frag gezielter. es ist nur ein gut gemeinter hinweis um schneller zum ziel zu kommen.

keienr hier kennt deinen code... du hast ne combobox da möchtest du die kostenstellen angezeigt haben... genau dsa macht mein codebeispiel.

du mußt es nur noch in deine anwendung transferieren...

ich kann es dir auch formell beschreiben:

  • lösch den inhalt der combobox
  • mach ein abfrage über alle kostenstellen
  • geh in einer schleife nun jede zeile der ergbnismenge durch und füge über .Items.Add den wert zu der combobox hinzu
29.01.2007 - 15:55 Uhr

weiss sonst noch jemand ne lösung zum adden...?

Was gefällt dir an der Lösung nicht?

comboBox1.Items.Add(......)

?
Was für ein Problem hast du mit der Anweisung?

comboBox1 ist die Variable für die ComboBox
eine ComboBox hat die Eigenschaft Items, diese gibt eine Auflistung aller Einträge zurück.

Diese Collection kann man nun mit Clear z.B. löschen, oder mit Add befüllen.

Anstonen mal nen kleiner Tipp:
Ich würd dir dringend raten etwas mehr Bücher, Tutorials oder Doku zu lesen weil das im Grunde alles Basiswissen ist.
Und mit solchen zweizeilern kann niemand was anfangen. Beschreib genau was für ein Problem du hast, und was genau du nicht verstanden hast. Sonst geht diese hin und her nen ganzen Abend lang und der Thread zieht sich ne Woche lang hin. 😉