Laden...
Avatar #AaeBmVslZVd6BRa5r84w.jpg
joerg.uth myCSharp.de - Member
Consultant PM Lonnig Dabei seit 30.08.2006 484 Beiträge
Benutzerbeschreibung

Forenbeiträge von joerg.uth Ingesamt 484 Beiträge

30.11.2006 - 18:49 Uhr

Original von eddieromm
Bitte versteh mich nicht falsch, ich bin ja schon froh, dass überhaupt jemand schreibt. Aber wie soll mir das jetzt genau weiterhelfen?

Wenn man das so macht, wie im Beispiel beschrieben, dann muss jemand diesen Script auf dem Server ausführen. Ich kann das auch nicht machen, dafür sind es zu viele, zu weit weg, bei vielen ist Fernwartung nicht möglich.

Du hast ein Programm, dort klickt der Benutzer den Button Backup oder Restore.
Es scheint doch so, das jeder Benutzer(ClientRechner) seine eigene MSDE hat, also
hast Du auch nen ConnectionString, somit bist Du doch in der Lage den Benutzer
über dein Programm mit Hilfe eines simplen SqlCommand den Backupbefehl(TSQL)
an die Datenbank zu geben.

Da brauchst Du kein Remotezugriff.
Ach das FileSystem kannst Du doch auch mit c# wunderschön durchsuchen.

Also entweder verstehe ich die Frage nicht richtig, oder aber Du machst es Dir unnötig schwer.

Jörg

29.11.2006 - 20:53 Uhr

Schau Dir hier http://www.codeproject.com/aspnet/search.asp mal an wie der SearchString zusammengebaut wird,
betrifft zwar den IndexServer aber das Prinzip stimmt.

Am besten den Source downloaden.
Ist zwar schon aus 2003 aber das macht nix.

Jörg

29.11.2006 - 19:37 Uhr

Schön 🙂
Hast Du mal versucht heraus zu finden woran es nun gelegen hat?

Jörg

29.11.2006 - 19:36 Uhr

Hast Du denn auch schon das hier gelesen?
http://support.microsoft.com/kb/241397
Jörg

28.11.2006 - 07:10 Uhr

Wo liegt denn deine *.master Datei? Stimmen die Pfade zb: ~/templates/foo ?

Jörg

27.11.2006 - 21:41 Uhr

Musste sein 😉 So kam ich doch vor kurzem noch in ein CMS eines weltweit führenden Herstellers von sagichnicht rein, da habe ich denn mal angerufen 🙂
Die sind dann vom Glauben abgefallen und haben sofort die Alarmstufe rot ausgelöst.

Kleine Ursache große Wirkung.

Jörg

27.11.2006 - 20:13 Uhr

Solange der Benutzer mit Username **' OR 1=1 -- **noch nicht angemeldet ist
greift dein allow * nicht.

Sieh dir mal die Bedeutung * ? genau an.

<location path="template">
<system.web>
<authorization>
<allow users="*"/>
**<allow users="?" /> **
</authorization>
</system.web>
</location>

Jörg

27.11.2006 - 06:49 Uhr

Dies ist zwar auf c++ bezogen, zeigt aber sehr schön Rekursion

http://www.bw.fh-deggendorf.de/kurse/cpp/skripten/skript14.pdf

Gruß Jörg

25.11.2006 - 15:49 Uhr

Suche mal nach "Softwareüberlassungsverträge" als KeyWord,
weil License und Sofwarelizenz sind so typisch unjuristisch.

Jörg

25.11.2006 - 15:39 Uhr

Nur mal so als Info weil SQL:

Anstelle von DROP Table und CREATE reicht ein TRUNCATE Table.
Ist schneller > Und setzt bei Autowerten diesen Wert wieder zurück.
Hat aber auch Ausnahmen: Foreign Key Einschränkung und äh 🤔 vergessen.

Jörg

25.11.2006 - 14:15 Uhr

Viel schlimmer als "sinnlose" Fragen finde ich eher die Reaktion auf richtige Antworten bzw. richtige Hinweise.

Beispiele findet man dazu genug, da schlägt man etwas vor, was 100% richtig ist
und es wird dann trotzdem wieder falsch weiter gearbeitet um dann wieder eine Frage zu stellen die dann wirklich unnötig ist.

Manchmal liegt es wohl an der Talentfreiheit manchmal auch an der fehlenden Disziplin sich mit seiner Arbeit/Hobby/Unterrichtsstoff auseinander zusetzen,
oder ganz einfach an der Faulheit.

Ich habe 2001 die ersten Schritte in C# gemacht und da gab es so ein Forum "leider" oder sagen wir aus heutiger Sicht "Gott sei Dank" nicht!
Denn sonst wäre wohl nicht soviel hängen geblieben, wenn man jederzeit auf einen "Experten" hätte zurückgreifen können.

Heute gebe ich gerne mein Wissen weiter, aber bei bestimmten Posts halte ich mich da an Borgs Algorithmus 🙂

Jörg

24.11.2006 - 17:20 Uhr

Ich denke mal Du bindest an ein DataView, da DataTable keinen RowFilter hat.

Es gibts keinen TOP n im RowFilter.

Es gibt nur einen Trick:
Du fügst Deiner Tabelle eine DummySpalte mit Autowert zu, und setzt dann den RowFilter "DummyColumn >0 AND DummyColumn < 70" hinzu.

Jörg

24.11.2006 - 16:14 Uhr

Erinnert mich irgendwie an den Thread: Anforderungen an einen guten ASP.NET Coder

Das ganze nennt sich LifeCycleProblem.

Dein Button wird dynamisch dem PlaceHolder zugefügt wie oben in Button1_Click
führt dieser neue Button nun ein Postback aus wird er nicht mehr im PlaceHolder sein weil die Seite sich neu aufbaut.

Lösungsansätze: Cache, Session

Wenn wie oben beschieben der Button im Page_Load erzeugt wird dann greift alles,
weil die Methode Page_Load im Gegensatz von Button1_Click ausgeführt wird!

Experimentiere mal mit Ideen, denn das wird Dich immer wieder begleiten!

Jörg

24.11.2006 - 15:33 Uhr

Interessant wie sich sowas entwickelt.

Hier ist wohl der Ursprung suchen: http://www.smokey-stover.com/smokeycomics.html
Und hier eine Mythologie der Informatik http://www.aifb.uni-karlsruhe.de/WBS/dob/docs/informatik.pdf

Jörg

24.11.2006 - 12:40 Uhr

Original von Chris06
Erstmal führe ich saveas aus. Dann hole ich mir die so gespeicherte datei wieder, konvertiere sie und speichere sie unter neuem namen. die alte datei wird anschließend gelöscht.

Ist sicherlich nicht unbedingt die feine englische.......aber Hauptsache es funzt.

Dein Ansatz war ja auch bisher so, dass Du davon ausgegangen bist, das diese
Datei auf dem FileSystem existiert.

Du könnstet den Weg gehen den Stream zu bearbeiten, und dann dein Image als
solches zu speichern.

File.InputStream liefert dir den Stream.

Jörg

24.11.2006 - 12:19 Uhr

Nimm mal

System.Text.Encoding.Default 
//oder 
System.Text.Encoding.UTF8

Jörg

24.11.2006 - 12:06 Uhr

Hallo.

Page.Master.FindControl("TopNav2")

Jörg

24.11.2006 - 11:56 Uhr

Deine Lib hat noch keinen Strong Name

Schau Dir das mal an: ms-help://MS.VSCC.v80/MS.VSIPCC.v80/ms.EntLib.2006Jan/EnterpriseLibrary/html/00-02-011-Strong%20Naming%20Enterprise%20Library%20Assemblies.htm

Oder versuche zuerst dies:

<section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null" />

Jörg

24.11.2006 - 11:13 Uhr

GAC = Global Assembly Cache.

Du schreibst Du hättest den Source bekommen, und bei dir auch die EnterpriseLibrary installiert.

Mit welcher Version der EntLib. wurde in dem Source gearbeitet, welche Version hast Du installiert.

Schau mal in C:\WINDOWS\assembly nach ob PublicKeyToken=6c0da7b709ca9634 der EntLib dort drin ist, oder ob die Referenz auf die richtige Version in deinem Projekt gesetzt ist.

Jörg

24.11.2006 - 10:23 Uhr

Schau mal in den GAC ob die Versionen stimmen.
Von der EnterpriseLibrary 🙂
Jörg

23.11.2006 - 20:36 Uhr

Probiers aus nachdem Du einen Postback auf der opener-Seite gemacht hast.

Jörg

23.11.2006 - 20:17 Uhr

mach lieber
window.opener.location.replace("dateinamel.htm");

damit dir die historie des Browsers keinen strich durch die rechnung macht.

Jörg

23.11.2006 - 19:51 Uhr

Javascript mit Zugriff auf opener

Hatten wir schon mal 😉 [newbie] Page Reload

Jörg

23.11.2006 - 19:28 Uhr

Erstelle das JavaScript dynamisch und
füge es dann der Page mit RegisterStartupScript

Jörg

23.11.2006 - 17:35 Uhr

Besuche mal Michèle Leroux Bustamante aka dasBlonde http://www.dasblonde.net/CategoryView,category,Globalization.aspx

Jörg

23.11.2006 - 16:18 Uhr

Hallo und Willkommen.

Wenn Deine Klasse ein OnDataReceived Event bereitsstellt musst Du doch nur
innerhalb deiner Form einen Eventhandler zuweisen.

public static void Main()
{
        DeineKlasse foo = new DeineKlasse();
        foo.OnDataReceived += new DeineKlasse.DataReceivedEventHander(fooDataReReceived);
}

void fooDataReReceived(object sender, DataReceivedEventArgs e)
{
         TextBox.Text = e.Message;
}

Sehe Dir Delegates und Events doch nochmal genauer an.
z.B.: http://www.galileocomputing.de/openbook/visual_csharp/

Jörg

23.11.2006 - 13:16 Uhr

BitShift Operationen nennt sich sowas.
Oder möchtest Du aus:

25 = 11001 machen
so in der Art
string foo = ShowBits(25);
und foo ist dann 11001

Jörg

23.11.2006 - 11:40 Uhr

Setze eine SessionVariable!

Um TippArbeit zu sparen erstelle eine

BasePage:System.Web.UI.Page

Alle neuen Pages erben dann von dieser BasePage.

In der BasePage setzt Du dann folgendes ein und alle Seiten
haben den richtigen Culture.

Wenn Du die Sprache ändern willst:

    protected void ImageButton_Click(object sender, ImageClickEventArgs e)
   {
       this.CurrentLanguage = ((ImageButton)sender).CommandArgument;
    }

ImageButton kennt CommandArgument da schreibts Du halt "de-DE" rein.

public string CurrentLanguage
    {
        get 
        {
            if (HttpContext.Current.Session["_CurrentLanguage"] != null)
                return (string)HttpContext.Current.Session["_CurrentLanguage"];
            else
                return "de-DE"; // hier kannst Du auch nen Wert aus der web.config auslesen
        }
        set 
        { 
           // Hier könnte man noch überprüfen ob es die Culture
          // überhaupt gibt ko-KOELSCH :)

            HttpContext.Current.Session["_CurrentLanguage"] = value;
            System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo(this.CurrentLanguage);
            System.Threading.Thread.CurrentThread.CurrentUICulture = System.Threading.Thread.CurrentThread.CurrentCulture;
        }
    }
    private void InitCulture()
    {
        System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo(this.CurrentLanguage);
        System.Threading.Thread.CurrentThread.CurrentUICulture = System.Threading.Thread.CurrentThread.CurrentCulture;    
    }


    protected override void OnInit(EventArgs e)
    {
        base.OnInit(e);
        InitCulture();
    }
}

EDIT: this.Culture ersetzt durch this.CurrentLanguage
Jörg

23.11.2006 - 09:32 Uhr

Schau dir mal den Quelltext vom browser an.

23.11.2006 - 09:11 Uhr

erfolgt der Aufruf mit pruefen oder Pruefen?

Wo steht denn die Function pruefen? Im Head?
mach mal
alert(e);
alert(btn);

Jörg

23.11.2006 - 08:56 Uhr

Es geht, aber nur mit JavaScript!

Dabei ist zu beachten, dass wenn Du eine MultilineTextBox hast, das dort natürlich die Entertaste einen Zeilenumbruch setzen kann/darf.

Hier mal ein Beispiel: Nur IE, da es sich um eine IntranetAnwedung handelte
Was Du nicht brauchst schmeiss raus 🙂

document.onkeydown = disableNavigationKeys;

function disableNavigationKeys()
{    	
	
	//alert(event.srcElement.type);
	//alert(event.srcElement.isTextEdit);
	//disable Backspace, Alt+Arrowkeys, Ctrl-N 
	if ((event.keyCode == 8 && (event.srcElement.form == null || event.srcElement.isTextEdit== false)) 
		|| event.keyCode == 37 && event.altKey	
		|| event.keyCode == 39 && event.altKey	
		|| event.keyCode == 78 && event.ctrlKey
		|| event.keyCode == 13 && (event.srcElement.form == null || event.srcElement.isTextEdit== false || event.srcElement.type != 'textarea')
		)

	{        
		event.cancelBubble = true;
		event.returnValue = false;
	}
	
	if(event.keyCode==27)
	{
		// spezial for ESC
	}
	// disable Ctrl-P
	if (event.keyCode == 80 && event.ctrlKey)	
	{
		alert("Printing is disabled");
		event.cancelBubble = true;
		event.returnValue = false;		
	}		
}

Hier noch ein brutales ohne die Berücksichtigung:

function disableEnterKey(e)
 {
    var key;

    if(window.event)
        key = window.event.keyCode;     //IE
    else
        key = e.which;     //FF

    if(key == 13)
        return false;
    else
        return true;
}

Jörg

23.11.2006 - 08:42 Uhr

btn_pruefen ist doch das Element was geklickt werden soll, oder?

Schau mal im QuellText ob der Button wirklich so heisst, denn es kann auch so aussehen. ctl00_ctl02_btn_pruefen

Eweitere dein Function Pruefen() mal so:

function pruefen(e)
{
    alert('Hinweis');
    var btn = document.getElementById(e);
    if(btn != null)
       btn.click();
}

Und aufrufen mit:

string openScript = "<script type=\"text/javascript\">Pruefen('" +  this.btn_pruefen.ClientID +  "');</script>";
RegisterClientScriptBlock("WindowOpener", openScript) ;

Jörg

23.11.2006 - 08:14 Uhr

Versuche mal:

myFileInfo.Name.Replace("'","''");

So geht´s bei SQL.

Jörg

23.11.2006 - 07:26 Uhr

Das deine Connection noch null ist, weißt Du auch, oder?

System.Data.OleDb.OleDbConnection verbindung = null;

Jörg

22.11.2006 - 20:46 Uhr

master ist eine Datenbank auf dem SQLServer;

Hier findest Du ein Beispiel: http://support.microsoft.com/kb/307283/de-de

Wenn Du direkten Zugriff auf den Sqlserver hast würde ich das ManagmentStudio nehmen.

Jörg

22.11.2006 - 18:46 Uhr
query.CommandText = "INSERT INTO menue(name, image, anordnung, visible) VALUES(null,?,?,?,?)";

4 Spalten != 5 Values

Jörg

22.11.2006 - 18:34 Uhr

Wäre das nicht ein wenig übertrieben 🙂
Ich kann Dir da nicht weiterhelfen nur soweit:
Schau Dir mal mit Reflector an wie 3DES erstellt wurde, vielleicht findest Du dort nen Denkanstoss.

3AES bei googles CodeSearch könnte auch hilfreich sein.

Jörg

22.11.2006 - 18:12 Uhr

Du musst das Rad doch nicht neu erfinden:
http://msdn.microsoft.com/msdnmag/issues/03/11/AES/
Jörg

22.11.2006 - 18:03 Uhr

In dem Du einen SQLBefehl ausführts mit z.B.:

CREATE DATABASE

Und in c# diesen dann ausführen lässt.
Beachte das dies Zugriff auf die master erfordert und Du die dementsprechenden Rechte brauchst.

Jörg

22.11.2006 - 16:15 Uhr

Das ist auch einfach 🙂

Thread.CurrentThread.CurrentCulture = new CultureInfo("de-DE");
Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture;

Jetzt brauchst Du nur noch ein DropDown
mit:
de-DE
en-US
ch-ZHN
de-AT
de-CH
fr-FR
en-GB
es-ES usw.

Jörg

22.11.2006 - 15:36 Uhr

Mach wie Du meinst.

Aber warum das Programm nicht mit NULL in der Spalte [Position] umgehen kann, ist ohne weitere Kenntnis über das Programm( Source )
nicht möglich.

Lösungsidee wäre nur ISNULL .

Jörg

22.11.2006 - 10:43 Uhr
DataTable neueTabelle = alteTabelle.Clone();

//System.Data.DataTable.Clone();

Jörg

22.11.2006 - 10:20 Uhr

string sBefehl = "SELECT * FROM Kunden WHERE Ort" + lbAuswahl.Text;

Muss heissen:

string sBefehl = "SELECT * FROM Kunden WHERE Ort = '" + lbAuswahl.Text +"'"; 
//Besser ist es aber mit Parametern zu arbeiten.
string sBefehl = "SELECT * FROM Kunden WHERE Ort = @Ort"; 

Jörg

21.11.2006 - 22:18 Uhr

Original von smoovn
textc/texthc ist immer ein String und damit lässt sich nicht Rechnen und ich habe alles versucht weiß aber nicht wie ich das Bewerkstelligen soll..

Du hast schon richtig erkannt das es sich mit Strings schlecht rechnen lässt,
was Du also brauchst sind Zahlen!

Zahlen können in C# verschiedene Typen sein.
z.B. int, double etc. Schau Dir mal das Starterkit, die MSDN und oder http://www.galileocomputing.de/openbook/visual_csharp/ an.

Du hast also folgende Strings:
textc.Text
texthc.Text
Um daraus jetzt eine Zahl zu machen gehst Du wie folgt vor:


// Das Beispiel ist ohne jedes Exceptionhandling TryParse etc.

int a = Int32.Parse( textc.Text );
int b = Int32.Parse( texthc.Text );

[Edit: Dummheit korrigiert]
int c = a*b/2;
lblErgebniss.Text = c.ToString();


Gruß Jörg

21.11.2006 - 09:45 Uhr

Wenn man schon einen SQL-Server verwendet, dann kann und sollte man auch
die gespeicherten Prozeduren verwenden, weil man hiermit einfach die bessere Performance hat.

Nutze die Möglichkeiten 🙂

Jörg

20.11.2006 - 20:44 Uhr

Es ist definitiv möglich!
Und zwar mit Command.UpdateCommand =

SqlCommand UpdateCommand = new SqlCommand();
UpdateCommand.Connection = this.Connection;
etc..
DataAdapter.UpdateCommand = UpdateCommand;

Es mit einem CommandBuilder zu machen ist die zweite Wahl.
Tipparbeit hin oder her.

Jörg

20.11.2006 - 19:56 Uhr
string[] foo =  replaced.Split(" ");
string s1 = foo[0]
string s2 = foo[1]  

Jörg

20.11.2006 - 08:19 Uhr

Das riecht irgendwie nach Encodingproblem,
leider kenne ich die SharpZipLib nicht aus dem effeff aber da würde ich mal ansetzen.

Encoding.Default hilft da vielleicht schon.

Jörg