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

16.10.2006 - 08:57 Uhr

Nimm einfach http://www.sqlscripter.com/
Das funktioniert einwandfrei.

Happy Coding
Jörg

15.10.2006 - 12:29 Uhr

Dafür gibts ja Exception ex, aber ich versteh was Du meinst 😉

Jörg

15.10.2006 - 12:15 Uhr

Original von Waschbecken
Nimm das try/catch wieder raus ...

Warum das?
Jörg

15.10.2006 - 11:47 Uhr

Habe ich wohl zu schnell geantwortet: Code ist mittlerweile s.o. ans GridView angepasst.

Jörg

15.10.2006 - 11:22 Uhr



if(e.Row.RowType == DataControlRowType.DataRow)
{
    try
    {
        Image Bild = (Image)e.Row.FindControl("iPerson");
        Bild.ImageUrl = "~/Bilder/Icons/Harmony/smiley-falsch-32x32.jpg";
    }
    catch(Exception ex)
   {
       // Trace.Warn....
   }

}

Jörg

13.10.2006 - 15:26 Uhr

Das hört sich nach Compilerfehler an.

mach mal aus spass public
dann public static

Muss jetzt wech 🙂
Schönes Wochenende

13.10.2006 - 15:02 Uhr

System.Data
Microsoft.Practices.EnterpriseLibrary.Data
Microsoft.Practices.EnterpriseLibrary.Configuration

Also wenn Du VS 2005 nutzt dann kann es Dir doch das passende using einfügen.

13.10.2006 - 14:31 Uhr

Meinst Du Microsoft.ApplicationBlocks.Data?

Happy Coding
Jörg

13.10.2006 - 12:04 Uhr

Zwei Dumme - ein Gedanke 😉

Happy Coding
Jörg

13.10.2006 - 12:01 Uhr

Hast Du vielleicht securityTrimmingEnabled="true" in der web.config stehen?

Jörg

13.10.2006 - 10:23 Uhr

Original von JunkyXL

Das bezieht sich auf ASP.NET. Ich denke mal, er sucht eine Userauthentifizierung für Windows Forms Applications.

Das wusste ich, aber aus der Frage ging weder Win/Webforms noch Framework geschweige denn wo die "User" gefunden werden sollen hervor.

Und da wir hier uns Basistechnologien und allgemeine .NET-Klassen befinden und meine Glaskugel schon ins Wochenende gegangen ist, mmh, da hatte ich diesen Link halt mal Parat.

Fazit: Je präziser die Frage, desto besser die Antworten 😉

Happy Coding
Jörg

12.10.2006 - 15:51 Uhr

Gut, Bernd sprach von Datenbank, daher mein Hinweis auf SQLInjection
Das Thema heist denn in deinem Beispiel, also wenn es keine DropDowns wären,
XmlInjection die auch einiges erlaubt 🙂

Aber das wäre glaube ich mal einen Artikel wert.

Happy Coding
Jörg

12.10.2006 - 10:38 Uhr

Original von Deeplink
ich suche nach einer Auflistung oder Artikel über die Neuerungen/Vorzüge des SQL-Server 2005 gegenüber den 2000. Des Weiteren wäre Interessant ob man in Bezug auf VS2005 Prof. durch den 2005 irgendwelche Vorteile hat die man mit dem 2000er nicht nutzen kann.

Auf der Page die ich gepostet hatte befindet sich doch noch ein Link
Neue Funktionen in SQL Server 2005

mit Infos zu:
Enterprise Data Management
Entwicklerproduktivität
Business Intelligence
Aktualisierung auf SQL Server 2005

Gruß Jörg

12.10.2006 - 10:02 Uhr

Nimm doch den Link von [Yellow].
Click & Buy gibt es auch für die Schweizer 🙂

Gruß Jörg

12.10.2006 - 09:18 Uhr

Also zum "Anlernen" und zum Aufbau eines Grundverständniss in OO eignet sich für einen Anfänger "C# in 21 Tagen".

Es ist zwar kein Kompendium, daß wird es meiner Meinung nach auch nicht geben,
aber ohne Grundlage kein Aufbau z.B. in Win/Webforms, ADO, Vererbung und all die schönen Dinge des Programmierens.

Ich habe das schon oft bei "Anfängern" verwendet und war selbst erstaunt wie schnell man sich "OO" unterhalten konnte 🙂

Happy Coding
Jörg

12.10.2006 - 09:02 Uhr

Guten Morgen 🙂
So ... zu den Einstellungen:
http://support.microsoft.com/default.aspx?scid=kb;DE;162059

Die Symbolleiste heisst "Aufgabenbereich".

Gruß Jörg

11.10.2006 - 23:25 Uhr

Ein Netzwerkshare bietet Dir ja nix weiter als sharedDocuments ohne Versionierung, Benachrichtugen, etc...

Ich muss da auch mal nachschauen, muss glaube ich im IE eingestellt werden.

Morgen 🙂

Gruß Jörg

11.10.2006 - 19:31 Uhr

Sorry hatte nur den BlogPost gelesen und da Stand:

"I believe there is a patch for this through MS. You have to contact them though, you cant just download it. Here is the link:"

Das Du mit 2.0 arbeitest war noch offen.

Also doch Encoden, nuja 🙁

Happy Coding
Jörg

11.10.2006 - 19:03 Uhr

Original von Traumzauberbaum
Würde mich ehrlich gesagt wundern, wenn man mit dem Select Befehl vom DataSet eine Tabelle löschen könnte 😉

Dann wundere Dich mal und schreibe Dir doch mal ne einfache Form oder Page
und schreibe da mal im Init oder wo Du willst das hier rein.


// Wir löschen jetzt mal die Tabelle und nicht die Daten der Tabelle
// und wir verwenden nicht master.xp_cmdshell womit wir ja noch mehr anstellen
// könnten z.b. Einen Share anlegen net tralala 
// Alles natürlich vorausgesetzt wir haben die dementsprechenden Rechte am SQL-Server

// Für [Tabelle1]  kannst Du ja mal Eure KundendatenTabelle nehmen
// Für den Catalog=Killit nimmst Du dann Eure Produktivdatenbank

// Erstelle besser ne TestDb :) 

string sql = "Select * from [Tabelle1] where Username = '' DROP TABLE [Tabelle1] --";
        SqlConnection conn = new SqlConnection();
        conn.ConnectionString = "Data Source=DeineDatenbank;Initial Catalog=Killit;Integrated Security=True";
        SqlDataAdapter da = new SqlDataAdapter(sql,conn);
        DataSet ds = new DataSet();
        da.Fill(ds,"User");


Happy Coding

Jörg

11.10.2006 - 17:02 Uhr

Hallo Bernd,

ums Prinzip ging es mir auch, denn wenn ich z.B. Software teste ist es das erste was ich mache 🙂

Und wenn Du z.B. Projektmitarbeitern, Praktikanten, Azubis
diese Vorgehensweise zeigst und die sich das aneignen - dann muss man jedesmal den SecuritySheriff spielen.

Von daher halte ich es für angebracht immer SecureCode zu zeigen, gerade weil sich auch hier im Forum Newbies aufhalten.

Gruß Jörg

11.10.2006 - 16:53 Uhr

Ersetze mal \f durch %5cf

Wenn das funktioniert mußt Du wohl oder übel HEX-Codieren

Gruß Jörg

11.10.2006 - 16:11 Uhr

Du meinst aus UI Datagrid ein System.Data.DataTable ?

Jörg

11.10.2006 - 15:56 Uhr

Original von BerndFfm

  
string sqlstr = "select * from datei where ";  
if (textBox1.Text =! "") sqlstr += " wert1 = '" + [B]textBox1.Text [/B]+ "' and ";  
if (textBox2.Text =! "") sqlstr += " wert2 = '" + textBox2.Text + "' and ";  
if (textBox3.Text =! "") sqlstr += " wert3 = '" + textBox3.Text + "' and ";  
if (textBox4.Text =! "") sqlstr += " wert4 = '" + textBox4.Text + "' and ";  
if (textBox1.Text+textBox2.Text+textBox3.Text+textBox4.Text == "")  
     sqlstr = "select * from datei";  
else  
     sqlstr = sqlstr.SubString(0,sqlstr.Length-5);  
...  
  

@Bernd das riecht aber nach SQL Injection


textBox1.Text = " ' DELETE TABELLE --      "

Nur mal so am Rande

Jörg

11.10.2006 - 15:42 Uhr

Original von alex309
ja da hätte ich ja meine 16 Möglichkeiten und dementsprechend auch meine
16 Suchalgorithmen.
ich dachte mir nur ob es auch etwas kürzer geht 🙂

Es sind nur 4 !


/**********************
AUS DEM BAUCH UNTESTED
\***********************/

public void Search(string a, string b, string c, string d)
{
  // Nehmen wir mal an das der Defaultwert bei SelectedIndex[0] string.Empty ist
  StringBuilder MeineSuche = new StringBuilder();
  MeineSuche.Append ("/user/[");

  bool Added  = false;
  if(!IsNullOrEmpty(a))
  {
     MeineSuche.AppendFormat("Hersteller ='{0}', a);
     Added = true; 
  }
  if(!IsNullOrEmpty(b))
  {
      if(Added)
        MeineSuche.Append(" AND ");
     
      MeineSuche.AppendFormat("ort ='{0}', b);
      Added = true;        
    }

// Den Rest machst Du schon

MeineSuche.Append("]");
XmlDocument doc = new XmlDocument();
XmlTextReader reader = new XmlTextReader("c:\\dein.xml");
reader.Read();      
doc.Load(reader);
//XPath
XmlNodeList NodeList = doc.SelectNodes(MeineSuche.ToString())
StringBuilder Builder = new StringBuilder();
Builder.Append("<OUTPUT>");

foreach (XmlNode node in NodeList)
{
        Builder.Append(node.OuterXml);
}
Builder.Append("</OUTPUT>");
// Rest machst Du schon
}


Gruß Jörg

11.10.2006 - 15:06 Uhr

So was ist doch nicht schwer.



public void Search(string a, string b, string c, string d)
{
  // Nehmen wir mal an das der Defaultwert bei SelectedIndex[0] string.Empty ist
  
  if(!IsNullOrEmpty(a))
  {
     // Mach was mit a
  }
  // ... usw dann auf xml loslassen

 }

Jörg

11.10.2006 - 13:32 Uhr

Dein StyleSheet ist der Übeltäter!

#Tabelle_01 overflow: zeigt Dir wohl den Weg!

overflow:visible; !!! setzen!!

Jörg

11.10.2006 - 13:12 Uhr

_default steht nur da weil default reserviert ist..
Also daran liegt es also nicht.

Dann hilft nur erstmal der Quelltext der Seite seite, also der des Browsers.

Jörg

11.10.2006 - 12:57 Uhr

Und steht auch:

<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="deineseite.aspx.cs" Inherits="deineseite" %>

in der Seite?

Jörg

11.10.2006 - 11:38 Uhr

Verstehts Du eigentlich was Du da machst?


private void btnUpdate_Click(object sender, System.EventArgs e)
{
// SQL Hole alle Daten von Tabelle "kunde"
string strsql="SELECT * FROM kunde";
// Nehmen wir mal einen DataAdapter
SqlDataAdapter Anzeigen = new SqlDataAdapter(strsql, sqlConnection1);
// Jetzt mal ein DataSet
DataSet ändern = new DataSet(); 

// schön

try 
{ 
// kann "ändern überhaupt null sein??
if (ändern != null) 
{ 
// So jetzt :)
// Lieber DataAdapter fülle alle meine Daten der Tabelle "kunden"
// so jetzt zeig mir mal wieviele Daten überhaupt da sind
// Dann geb mal ne MessageBox mit dem Wert aus.

int modifiedRows = Anzeigen.Fill(ändern);
MessageBox.Show("Database has been updated successfully: " 
+ modifiedRows + " Modified row(s) ", "Success"); 
} 
else 
{
MessageBox.Show("Keine Änderung"); 
} 
} 
catch(Exception ex) 
{ 
MessageBox.Show("Fehler");
ändern.RejectChanges(); 
}

}

Ich glaube Du solltest Dir mal ein paar Grundlagen ansehen.

Jörg

11.10.2006 - 11:27 Uhr

Es kann doch nicht so schwer sein auf http://msdn2.microsoft.com/en-us/library/ms269108.aspx zu kommen, wenn man die MSDN mal mit ein paar Suchbegriffen wie: Access Outlook Contacts füttert.

🤔

Jörg

11.10.2006 - 10:28 Uhr

Hallo Rainbird,

die Frage ist immer, was man mit SharePoint machen möchte, von daher ergeben sich ja dann immer etwas andere Erfahrungen.

Wir verwenden Sharepoint zum Projektmanagment, Kundendialog über eigene Projektpages etc.

Flickern ist halt ne gewöhnungssache, könnte man z.b. wenn IE eingesetzt wird durch http-equiv="Page-Enter" optisch aufmotzen, SmartNavigation kann ich da nicht empfehlen.

Langsam? Im Verhältnis wozu?
Wenn SharePoint mit nem "richtigen" SQL Server eingesetzt wird, also keine MSDE oder Express, finde ich die Performance schon i.O.

Office: Bei mir öffnen sich Office Dokumente z.B. Word mit allen Symbolleisten und zusätzlich die Symbolleiste für "Freigegebene Arbeitsbereiche" mit all seinen guten Features zur Zusammenarbeit.

Im Grunde tut SharePoint das was ich erwarte und durch die Möglichkeit es durch eigene WebParts zu erweitern, einfach anzupassen.

SharePoint 2007 habe ich noch nicht getested aber es hört sich schon mal ganz nett an. Workflow etc.

Da kann man stundenlang schreiben ...

Gruß Jörg

11.10.2006 - 09:34 Uhr

Warum sagst Du das nicht gleich 😉

Relations
GetParentRow(s)
GetChildRows

sind Deine Freunde.

Mach ein Select nehme die Row und dann kannst Du mit den Childs arbeiten.

http://www.galileocomputing.de/openbook/visual_csharp/visual_csharp_26_005.htm#Xxxobkap2600504001b8d1f0241bf

Dort findest Du ein Beispiel: In der Page nach "In Beziehung stehende Daten suchen" suchen.

Jörg

10.10.2006 - 13:23 Uhr

deutsch z.b. 😁

elf
zwölf
drei + zehn
vier + zehn
neun + zehn

niederländisch
elf
twaalf
dertien
veertien
[Edit] die wiederholen ab fünfzehn wieder X(
vijf + tien
..
negen + tien

Die Engländer nehmen halt teen statt ten

Jörg

10.10.2006 - 13:04 Uhr

Also bei 3 Einheiten würde ich HashTables etc. weglassen - dein Dozent weis ja was er vermittelt hat, und ob ihr schon System.Collections durchhabt 😉

Also Denken wir einfach: Modulo wird dein Freund sein

Du brauchst 2 Methoden eine für die die Console und eine HelferMethode die sich rekursiv aufruft und den String per reference zusammenbaut:


private static string MachEsMalEnglisch(int i)
{
    if(i > 999999)
      return "Hallo! Bis 999999 war die Aufgabe";

    //Wenn StringBuilder bekannt diesen nehmen ansonsten 
    // halt nen string nehmen

    StringBuilder words = new StringBuilder();
    Machjetzt(words, i);
    return words.ToString();
}

private static void Machjetzt(StringBuilder words, int i)
{
      if (i >= 1000) 
     {
      // Wieviel tausender haben wir denn überhaupt?
      // dividiere durch tausend und rufe die Methode erneut auf um 
     // zb. den wert "two" zu finden und dem string hinzuzufügen		
      Machjetzt(words, i/1000);
      // So "two" haben wir schon mal fehlt noch 
      words.append("thousand ");
      // und jetzt brauchen wir den rest
      i = i%1000;
     }
    // uns so weiter
   if(i >= 100)
  {
     // usw
  }
   // Besonderheiten der englischen Zählweise bis 19 (<20 ;)) sollten bekannt sein
  
}


Gruß Jörg

10.10.2006 - 10:51 Uhr

Original von dass
Einen zusammengesetzten aus insgesamt 6 Feldern (der PK ist identsich mit der Quelldatenbank)

Und da bist Du Dir auch 100% sicher, denn ein Insert würde ja scheitern, da es diesen ja schon gibt 🤔

Welche Art von DataSet nutzt Du denn typed oder untyped?
Wie erzeugst Du das UpateCommand für den DataAdapter, bzw. wie sieht der aus?

Gruß Jörg

09.10.2006 - 16:46 Uhr

Also im Grunde ist das trivial,
nimm den string key = "blablablabla";
und erzeuge daraus ein char[]
für jedes char holst du dann den wert aus deiner collection
und addierst es in einer int variable.

Tolle Verschlüsselung wird es wenn Du genau so viel Stellen verschiebst
bis alles wieder am Anfang ist. 🙂

Viel Spaß und schau Dir lieber mal den Namespace
System.Security.Cryptography an.

Gruß Jörg

09.10.2006 - 14:29 Uhr

Und... funktioniert das?

Gruß Jörg

09.10.2006 - 10:20 Uhr

Versuch mal das.


/****************************
\* AUS DEM BAUCH 
\* UNTESTED
\****************************/

Database db = DatabaseFactory.CreateDatabase("DB1"); 

using (IDbConnection connection = db.GetConnection()) 
{ 
    if(connection.State == ConnectionState.Open)
        connection.Close();

    connection.ConnectionString = "Dein Statement";
    
    connection.Open();
    
    db.ExecuteNonQuery(Command); 


}

Jörg

09.10.2006 - 09:52 Uhr

Du kannst doch mehrere ConnectionStrings in der web.config anlegen:
Warum im Code eine neue Connection hinzufügen?
Zum Beispiel:


<connectionStrings>
  <add name="Sales"
       providerName="System.Data.SqlClient"
       connectionString= "server=myserver;database=Products;uid=salesUser;pwd=sellMoreProducts" />

  <add name="NorthWind" 
       providerName="System.Data.SqlClient" 
       connectionString="server=.;database=NorthWind;Integrated Security=SSPI" />
</connectionStrings> 




Database db = DatabaseFactory.CreateDatabase("Sales");

Genau so hats ja Tom Hollander beschrieben.

Gruß Jörg

06.10.2006 - 18:21 Uhr

Mit DAAB aus der Enterprise Library für .NET 2.0 gehts doch siehe auch:

http://blogs.msdn.com/tomholl/archive/2005/09/14/466298.aspx

Gruß Jörg

06.10.2006 - 16:13 Uhr

Also unter http://msdn2.microsoft.com/de-de/library/1whwt1k7.aspx steht doch ein Beispiel drin:


// IndexButton.cs
using System;
using System.ComponentModel;
using System.Security.Permissions;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Samples.AspNet.CS.Controls
{
    [
    AspNetHostingPermission(SecurityAction.Demand,
        Level = AspNetHostingPermissionLevel.Minimal),
    AspNetHostingPermission(SecurityAction.InheritanceDemand, 
        Level=AspNetHostingPermissionLevel.Minimal),
    ToolboxData("<{0}:IndexButton runat=\"server\"> </{0}:IndexButton>")
    ]
    public class IndexButton : Button
    {
        private int indexValue;

        [
        Bindable(true),
        Category("Behavior"),
        DefaultValue(0),
        Description("The index stored in control state.")
        ]
        public int Index
        {
            get
            {
                return indexValue;
            }
            set
            {
                indexValue = value;
            }
        }

        [
        Bindable(true),
        Category("Behavior"),
        DefaultValue(0),
        Description("The index stored in view state.")
        ]
        public int IndexInViewState
        {
            get
            {
                object obj = ViewState["IndexInViewState"];
                return (obj == null) ? 0 : (int)obj;
            }
            set
            {
                ViewState["IndexInViewState"] = value;
            }
        }

        protected override void OnInit(EventArgs e)
        {
            base.OnInit(e);
            Page.RegisterRequiresControlState(this);
        }

        protected override object SaveControlState()
        {
            // Invoke the base class's method and
            // get the contribution to control state
            // from the base class.
            // If the indexValue field is not zero
            // and the base class's control state is not null,
            // use Pair as a convenient data structure
            // to efficiently save 
            // (and restore in LoadControlState)
            // the two-part control state
            // and restore it in LoadControlState.

            object obj = base.SaveControlState();

            if (indexValue != 0)
            {
                if (obj != null)
                {
                    return new Pair(obj, indexValue);
                }
                else
                {
                    return (indexValue);
                }
            }
            else
            {
                return obj;
            }
        }

        protected override void LoadControlState(object state)
        {
            if (state != null)
            {
                Pair p = state as Pair;
                if (p != null)
                {
                    base.LoadControlState(p.First);
                    indexValue = (int)p.Second;
                }
                else
                {
                    if (state is int)
                    {
                        indexValue = (int)state;
                    }
                    else
                    {
                        base.LoadControlState(state);
                    }
                }
            }
        }

    }
}



Jörg

06.10.2006 - 14:49 Uhr

Du bringst da was durcheinander:

System.Web.UI.WebControls.Button ist ein WebControl und keine Page!

Du brauchst also keine aspx Seite geschweige das PageLoad-Ereignis.

Erstelle eine neue Klassendatei im AppCode Verzeichnis oder erstelle ein neues Projekt (Empfehlung da wieder verwendbarer)


public class SuperButton : System.Web.UI.WebControls.Button
{
    public SuperButton():base()
    {
    }

    public override string ToString()
    {
        return "Ich bin der SuperButton";
    }
   
}


Jörg