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

19.11.2006 - 10:41 Uhr

Page.IsPostBack ist die richtige schreibweise!

Ich wollte nur wissen wie Dein Code aussieht, denke nämlich du verwendest
!Page.IsPostBack nicht, denn sonst werden jedesmal die Item neu erstellt.

Am besten bei solchen Problemen den Code von vornherein Posten.
Alles andere führt zu nix

Gruß Jörg

18.11.2006 - 21:24 Uhr
if(!Page.IsPostback)
{
    for (i = 0; i < ar.Count; i++)
        {
            object[] ob = (object[])ar[i];
            _chkbox_links.Items.Add(ob[0].ToString());
         } 
}

so

oder ohne die Postbackabfrage?

Jörg

18.11.2006 - 19:51 Uhr

Wie wird denn die CheckBoxList erstellt?
dynamisch?
statisch?

Wird wird das DataBinding durchgeführt?

Jörg

17.11.2006 - 15:07 Uhr

@Borg
Ich war aber nicht aufgrund des Forums bzw. des Fragestellers gereizt.
Nur meine Antwort war nicht stilitisch einwandfrei, dafür habe ich mich schon mal im Vorfeld entschuldigt.

Mein Vorschlag entstand erst aufgrund des Postings von FZelle:

Ja, aber deshalb haben wir doch jetzt auch hier und in anderen Foren,
so viele Neueinsteiger, weil man mal eben eine (DB-)Anwendung
zusammenclicken kann.

Und das dank der Express Versionen auch noch legal und Kostenlos.

Ich werde es in Zukunft mal nach deinem Algorithmus handhaben.

Gruß Jörg

17.11.2006 - 14:38 Uhr

Original von norman_timo
Nimm mich z.B. -> Es mag hier Leute geben, die halten mich für einen Programmiergott, ich bin überzeugt, es gibt welche die halten mich für einen Stümper. Was soll ich jetzt angeben? Das kann so also nicht funktionieren.

@Norman-Timo
Wie wärs mit Halbgott 😁

Ich bin ja erst seit 30.08.2006 dabei, und klar weiss ich im groben, wer zu den
guten Postern gehört, und den ein oder anderen - sagen wir "talentfreien".

Nur stelle ich manchmal fest, dass wenn ich eine Frage lese, mir der Gedanke kommt: "Ach neee, das ist doch Grundlage" - ohne dabei eine Info zu haben, dass es sich vielleicht um einen 14 jährigen Schüler handelt der gerade mal in der Schule "minus und minus ist plus" gelernt hat.

Die meisten Benutzer lassen ja diese Angabe frei 🤔

Sollte es sich jedoch um einen sagen wir Erwachsenen handeln fiele die Antwort halt einfach anders aus.

Es geht mir im Grunde um höfliche und angepasste Kommunikation.

Jörg

17.11.2006 - 13:43 Uhr

Ach ich seh das ganz prakmatisch.

Wenn jemand fragt:

Mensch wie bekomme ich denn ein string.Array aus diesem Satz?

Dann reicht bei Dir "Split" als Antwort.
Bei einem, sagen wir mal Rookie, kann man dann schon was mehr schreiben.

Außer vielleicht gehe MSDN suche System.String schlagmichtod.

Jörg

17.11.2006 - 12:10 Uhr

Original von Noodles
Ich persönlich halte es für nicht sinnvoll. Würde bei mir solche Sachen auch nicht einstellen. Wie viele Level soll man da anbieten, was ist mit Kombinationen von Leveln usw.?

Drei Level dürfte doch reichen: Um Anfänger / Erfahrene / Profis aus einander zuhalten

Vielleicht aufgrunde der Erfahrung in Jahren mit c#
0-2 Jahre
2-4 Jahre
mehr als 4 sprich 1.0 🙂

Jörg

17.11.2006 - 11:51 Uhr

Gestern Abend kam mir der Gedanke das Profil der Benutzer um eine Art User.Level zu erweitern.

Siehe dazu:Anfänger und die Access Datenbank

Nur so als Beispiel:
Level.Beginner
Level.Professional
Level.Expert.GUI
Level.Expert.Datenbank

Wie das genau aussehen könnte z.B. durch ein Icon oder eine einfache Zahl
0=Anfänger bis 10=Gott will ich garnicht festlegen wollen, auch nicht ob es ein Kontrolle des Level geben sollte, weil ein User an Selbstüber-/unterschätzung
leidet 🙂

Frage: Geht das überhaupt und was haltet ihr davon?

Gruß Jörg

17.11.2006 - 11:30 Uhr

Jetzt gerät der Thread aber wirklich weit ab vom Thema Datentechnologien
Smalltalk wäre jetzt wohl der bessere Ort 😉

Jörg

17.11.2006 - 11:13 Uhr

Ich hatte das gestern geschrieben, nach dem ich mittelbar davor einen Beitrag von HIZ und die Antwort von herbivore gelesen hatte.

Level.HIZ sollte HIZ auch nicht persönlich nehmen, aber er respräsentiert halt in perfekter Form diesen Level.

Ich frage > Ich bekomme Antwort > Ich verstehe nicht > andere Frage > bekomme Antwort > ich verstehe immer noch nicht > usw.

Jörg

17.11.2006 - 10:27 Uhr

Original von schaedld
was ist denn dass für ein Level?

<Zwinker>
Benutze doch bitte die Forumsuche 😁
</Zwinker>

Keyword: HIZ

Jörg

17.11.2006 - 06:42 Uhr

Eine gute Zusammenfassung 👍

Gerade deshalb, weil BizTalk so viele Möglichkeiten bietet, dass es schwer wird dies kurz und knapp auf den Punkt zu bringen.

Auch hat sich der SQL-Server 2005 mittlerweile so entwickelt, dass es halt mehr ist, als ein reiner "Datenbankserver". Dies nur mal am Rande.

Das Thema ist mittlerweile so umfangreich, das ein Buch da wohl nicht ausreichen würde, um es transparent und nachvollziehbar darzustellen.

Jörg

17.11.2006 - 01:16 Uhr

Edit: Sorry war zu schnell mit der Antwort hatte gedacht TSQL

Nimm direkt beim Update REPLACE

http://msdn2.microsoft.com/de-de/library/ms186862.aspx

UPDATE ingredient_juice SET color = Replace(....)

Gruß Jörg

17.11.2006 - 01:08 Uhr

Das einzigste was ich bei mir jetzt gefunden habe sind die Betas und das Release sowie jede Menge Dokumente vom Biztalk 2006.

Aber das Video war denn wohl auf ner Website.

Jörg der jetzt Feierabend macht 🙂

16.11.2006 - 21:57 Uhr

Daher wünschte ich mir manchmal auch so eine Art "Level" beim User,
damit man sieht welchen Level der Fragesteller hat.

Könnte ich ja mal als Verbesserung fürs Profil vorschlagen

Level.Beginner
Level.Professional
Level.Expert
Level.HIZ 🙂

Jörg

16.11.2006 - 19:45 Uhr

Aha, also klick und fertig. Obs gut ist steht dann auf nem anderen Stück Papier 😉
Siehste so lernt man auch mal was dazu 🙂

Jörg

16.11.2006 - 19:03 Uhr

Nur was viele nicht richtig verstehen ist die Terminologie.

http://de.wikipedia.org/wiki/Gesch%C3%A4ftsprozess

Das ist nämlich so ein schicker Oberbegriff hinter dem sich alle verstecken 🙂
Vielleicht hilft hier die OO-Variante "Alles ist ein Object"

Irgendwo habe ich da ein Webcast oder Video im Kopf der das mal Live zeigt.
Muss mal nachdenken bzw. mal meine Festplatten durchsuchen 🙂

Jörg

16.11.2006 - 17:14 Uhr

Du warst schneller als ich, hmmh, nun ist es ein ganz anderer Code.

Aber mal als Grundlage Du verwendest :

this.keno_Tabelle1TableAdapter.Fill(this._Keno_db1DataSet.Keno_Tabelle1);

Woher dieser kommt ist nicht ersichtlich

Wichtig ist bei der Arbeit mit Adaptern ist, dass diesen nicht nur ein SelectCommand
sondern auch ein UpdateCommand, InsertCommand und DeleteCommand übergeben wird. Denn damit kann der Adapter was anfangen, wenn Du ihm ein DataSet übergibst. Die DataRows haben nämlich einen RowState z.B. Deleted
die dem Adapter mitteilen, was er mit der Row machen soll.

Bekommt der DataAdapter nun von der Row mitgeteilt das er ein Update durchführen soll, braucht er ein UpdateCommand um der Datenbank die Daten dann zu übermitteln.

Oftmals wird dafür der CommandBuilder verwendet, der aus einem SelectCommand die anderen Commands erzeugt.

Merke:
DataAdapter brauchen zur ordenlichen Arbeit 4 Command.

DataAdapter.SelectCommand
DataAdapter.InsertCommand
DataAdapter.UpdateCommand
DataAdapter.DeleteCommand

Wenn Du also deinen Adapter für alle vier Aktionen verwenden willst, müssen alle 4 Commands vorhanden sein.

Jörg

16.11.2006 - 16:50 Uhr

Ich kommentiere mal deinen Code:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Data.OleDb;
using System.Windows.Forms;

namespace WindowsApplication1
{
    public partial class Form1 : Form
    {
       // Stelle Adapter und DataSet global der Klasse zur Verfügung 
       OleDbDataAdapter da = null;
        DataSet ds = null;

        public Form1()
        {
            InitializeComponent();

            OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=Keno-db1.mdb;");
            OleDbCommand cmd = new OleDbCommand("SELECT * FROM Keno_Tabelle1 ORDER BY ID", conn);
            // Init von DataAdapter
            da = new OleDbDataAdapter(cmd);
            // Oh ein CommandBuilder was macht der den hier
            // Soll der nicht Insert, Update, Delete Commands erstellen?
            // Ja stimmt aber hier in dieser Methode brauch ich die garnicht.
           // Aber vielleicht brauchst ja ein anderer, mmh vielleicht
           // ja  button1_Click? Aber woher soll der den denn kennen?
            OleDbCommandBuilder cb = new OleDbCommandBuilder(da);

            ds = new DataSet();

            da.Fill(ds, "Keno_Tabelle1");

            dataGridView1.DataSource = ds;

            dataGridView1.DataMember = "Keno_Tabelle1";
        }

        private void button1_Click(object sender, EventArgs e)
        {
           // da kenne ich
           // aber welchen UpdateCommand soll ich den haben?
           // Hmmh global finde ich auch nix
            da.Update(ds, "Keno_Tabelle1"); 
        }
    }
}

Sorry für den Stil, bin gerade etwas gereitzt - ist aber ein anderes Thema.

Jörg

16.11.2006 - 13:41 Uhr

Nein die Sources sind nicht mit dabei. Du kannst sogar einstellen das die aspx Files
vorkompeliert werden, dann gibts lediglich Dummydateien.

Alles andere liegt dann als dll im bin.

Jörg

16.11.2006 - 13:38 Uhr

Ich habe Beitrag auch nicht als Frage verstanden, sondern die Aussage nur kommentiert.

Jörg

16.11.2006 - 13:07 Uhr

Nimm Website veröffentlichen - Dann aufs DateiSystem speichern
Alles bis auf die web.config per ftp auf den Server schieben.

Jörg

16.11.2006 - 12:55 Uhr

Klar geht das!

public class User
{
   // Fields & Propeties    
   public User(Guid userid)
   {
         this.username = dr.GetString(0);
   }
}

Es immer ne Frage welche Lösung für das Projekt die "Richtige" ist.

Jörg

16.11.2006 - 12:48 Uhr

Stimmt aber das eine ist dein BusinessObject das andere dein Defintionsobject was nur zur Datenhaltung dient.

Ich kenne PWA von P.Lorenz nicht. Aber ich denke es wird auch dort so gemacht.
Alles andere wäre wie oben schon geschrieben nicht empfehlenswert.

Jörg

16.11.2006 - 12:29 Uhr

Wenn deine Definitions nur zur Vorratsspeicherung dienen dann kann man ja auch damit arbeiten. Früher, hi hi, gabs ein Beispiel nannte sich Duvamisch oder ähnlich
dort ging es um Enterpriselösungen.

Dort wurden keine sog. Definitions sondern Commons erstellt, was aber im Grunde ähnlich ist. Nur gabs beim 1.0 bzw. 1.1 keine Generics also
wurde nicht <LIST> genommen sondern alles von DataTable abgeleitet.

Obs jetzt ne DataRow oder eine Common.User ist, macht eigentlich keinen grossen Unterschied das eine ist typisiert das andere nicht.
Eines haben Sie aber gemeinsam; Den Datentransport nichts anderes.

Man muss nur aufpassen das man bei gleichem Namen auch das richtige Object meint.
BAL.User != Common.User

BAL.User u = new BAL.User(foo);
Label.Text = u.UserName;

In der Klasse BAL.User

public class User
{
   private string username;
   public string UserName
  {
      get{return this.username;}
  } 
   public User(Guid userId)
   {
        Common.User u = BAL.GetUserById(userId);
         this.username = u.username;
   }
}

In der DAL

public Common.User GetUserById(Guid userid)
{
     Common.User u = new Common.User();
     // Blablablub Datenbank
     u.UserName = dr.GetString(0);
    return u;
}

Jörg

16.11.2006 - 11:39 Uhr
Class User
{
private string username;
public string UserName
{
   get{return this.username;}
}
public User(Guid userId)
{
   DataRow row = DAL.GetUserById(userId);
   this.username = (string)row["UserName"];
}

}

Jörg

16.11.2006 - 11:32 Uhr

Original von Naffel9
meine Business-Schicht greift eigentlich auch gar nicht auf die Datenbank-Schicht zu.

Die Datenbank-Schicht gibt es Business-Objekt zurück, welches dann in der Business-Schicht verarbeitet oder weitergegeben werden kann.

Ich glaube Du solltest mal überlegen ob das der richtige Weg ist.
Meiner Meinung nach darf der DataAccessLayer keine Kenntnis vom BusinessLayer haben, sondern einfach nur Daten aus der Persistenz übertragen.

Außerdem gibts dann Crossreferenzen.
DAL refenziert auf BAL
BAL Referenzierzt auf DAL.

Wenn Du in deiner Businessschicht Daten aus der DAL holst könntest Du auch
internal so verwenden wie es vorgesehen ist, um dort halt die Werte aus der Db
dem Feld zuzuweisen.

Ich weiss ja nicht wie weit fortgeschritten dein Projekt ist, aber überdenke mal die Architektur. Wenn Du es nicht änderen willst oder kannst dann musst Du mit den Einschränkungen leben.

Jörg

15.11.2006 - 19:37 Uhr

BizTalk ist geil 🙂

Unter Geschäftprozesse kannst Du auf gut deutsch auch Vorgang sagen.
z.B.:
Ein Vorgang ist z.B. Bestelleingang das wiederum löst dann verschiedene andere Vorgänge aus, Bestätigung versenden, Lagerbestand prüfen, Versand, Lieferschein, Rechnung, Mahnung 🙂

Jörg

Zu mehr habe ich jetzt leider nicht die Zeit.

15.11.2006 - 10:44 Uhr

Da fällt mir noch was ein:
document.getElementsByTagName("body")[0].attributes

In den Attributes mal nach onload suchen, wenn vorhanden nodeValue zwischenspeichern und mit deinem Funktionsaufruf ergänzen, dann wieder zuweisen, fertig.

Jörg

15.11.2006 - 10:30 Uhr

Die Fehlermeldung an der Du die halbe Nacht gebastelst hast, liefert bei google
ca. 1.110 Ergebnisse.

Und wenn die Spalte customer_ppm Text aufnehmen kann, nimmt sie auch
'', wenn Zahl dann nicht.

Zum Datum beim WHERE habe ich mich ja schon geäußert.

Jörg

15.11.2006 - 10:16 Uhr

// Fill parameters (mutter_id ist ein übergebener int? Wert)
if (mutter_id==null) unternehmen.Setmutter_idNull(); else unternehmen.mutter_id=mutter_id.Value;
unternehmen.name = "Bla";

Kann es sein das:
if(mutter_id==null) nicht true wird?

Jörg

15.11.2006 - 10:04 Uhr

Weil Du den globalen Eventhandler gesetzt hast.
Aber Vorsicht, Du kannst damit einiges durcheinander bringen.

Da es sich ja um ein UserControl handelt, sollte dies auch so gestaltet werden,
dass es unabhängig von den Gegenheiten der Page, in der es eingebaut wird, ist.

Angenommen ich verwende Dein UserControl und gleichzeitig setzte ich auch
den EventHandler window.onload = meineFunktion(); ein. Was passiert?

Jörg

15.11.2006 - 09:53 Uhr

Meine Glaskugel beschlägt wenn es die Datumswerte sieht.

Access braucht was in der Form #mm/dd/yyyy#
[Edit]
Außerdem steht der Fehler doch schon da:
"Datentypen in Kriterienausdruck unverträglich."
[/Edit]
Jörg

15.11.2006 - 09:16 Uhr

Setzt doch den JavaScript aufruf nach
<div id="maparea"></div>
<script>
goMap24();
</script>
damit wäre dann gewährleistet das maparea existiert.

Eine andere Möglichkeit wäre eine TimeOut von 1000ms damit die Seite sich mal aufbauen kann.

Oder Du machst ne Schleife, die erst weitergeht wenn das div != null ist.

while (document.getElementById("maparea") == null) {

}

Jörg

15.11.2006 - 07:25 Uhr

Ergo
6 Jahre = +-5 Generationen.
Und der WDR ComputerClub (eff-eff) fällt heute unter Nostalgie.

Jörg
der auch noch einen alten Amiga im Keller hat mit 3 externen Diskettenlaufwerken.

14.11.2006 - 22:56 Uhr

Als ich 15 war gab so Kisten die sich Computer nannten so wie
Commodore 64, TI, VC 20, ZX81, Atari 400/800, Schneider und die wurden u.a. mit Basicvarianten programmiert.

Heute ist das alles kalter Kaffee, denn egal wie alt man ist, man muss ständig am Puls der Zeit bleiben.

Und das was BerndFFM meint stimmt schon so 🙂
Fleiss zahlt sich aus 🙂

Jörg

14.11.2006 - 21:33 Uhr

Schlechtes Design!
Stelle Dir mal vor Du möchstet 50 verschiedene Datentypen als image in die Tabelle legen.

50 image Spalten !!! Ob sich das der Server nicht übergibt, wegen des maximums
an Daten.

Normalisieren mit Extension int und ner Beschreibungstabelle wäre besser
und außerdem wäre das schön für nen Enum

Enum Extension
{
bmp,
gif,
tif
}

In der Datenbank dann die 1 abgelegt und beim auslesen wieder auf
Extension gecastet fertig.

Jörg

14.11.2006 - 21:25 Uhr

Dann schau mal in die Tabelle ob die mutter_id Null zulässt.

Mein unique war ja auch nur ein Beispiel 🙂

Jörg

14.11.2006 - 21:07 Uhr

Das eine sind SQL Datentypen das andere halt .net Datentypen
that´s it 🙂

Jörg

14.11.2006 - 20:10 Uhr

Ach jetzt versteh ich die Frage erst 😉
image würde ich nicht mehr einsetzen eher varbinary(max) aber das ist ja nicht das Thema.

Daten von image Daten werden als Zeichenfolge von Bits gespeichert und nicht von SQL Server interpretiert. Jede Interpretation von Daten in einer image-Spalte muss von der Anwendung vorgenommen werden.

Sprich Du musst Dir irgendwo "merken" welcher Ursprungstyp verwendet wird.
Zusätzliche Spalte nvarchar(4) Extension um darin einfach tiff,bmp,doc etc.. abzuspeichern.

Jörg

14.11.2006 - 18:57 Uhr

Da handelt es sich wohl um den SQL 2000 Server oder?

Gruß Jörg

14.11.2006 - 18:49 Uhr

Das Problem liegt nicht im DataSet sondern im DataAdapter.InsertCommand.

Sprich Du hast dem DataAdapter einen InsertCommand zugewiesen der die Parameter enthalten muss, die in der SP in der Datenbank angelegt sind.


SqlCommand InsertCommand = new SqlCommand();
InsertCommand.CommandText = "[InsertCommand]";
InsertCommand.CommandType = CommandType.StoredProcedure;
InsertCommand.Connection = DeineSqlConnection;
InsertCommand.Parameters.Add(new SqlClient.SqlParameter("@MuttiId", SqlDbType.UniqueIdentifier, 16, "MuttiId"));

Da musst Du mal prüfen ob alles stimmt.

Jörg

14.11.2006 - 13:42 Uhr

In der Ruhe liegt die Kraft. Datenbanken sind mehr als nur mal ne Tabelle mit ein paar netten Spalten.

Lass den Kopf nicht hängen und lese Dich mal generell zum Thema SQL ein.

Suchbegriffe "Einführung in SQL" dürfte bestimmt ein paar nützliche Seiten liefern.

Der Vorteil bei Access ist für Dich wohl das Du schneller siehst was passiert.

Jörg

14.11.2006 - 13:28 Uhr

Dann debugge mal vom Init alles bis zum Ende mit F11 durch und setze mal die Column mit der CheckBox sowie mal die Rows in die Überwachung.

Jörg

14.11.2006 - 12:02 Uhr

Original von tcakira
Was ich wissen möchte ist, ob ich das Membership und Role Management von ASP.NET innerhalb eines Webparts verwenden kann,oder ob ich zum Beispiel die Passwort-Validierung per Hand programmieren muß ?

Schau Dir mal das hier an: http://www.microsoft.com/germany/MSDN/webcasts/library.aspx?id=118768104

Wenn die Daten von außerhalb kommen, wirst Du wohl einen eigenen Membership und RoleProvider schreiben müssen, wenn Du die fertigen Controls von Asp.Net verwenden möchtest.

Natürlich kannst Du dann in den WebParts diese verwenden.

Jörg

13.11.2006 - 22:16 Uhr
   
foreach (DataControlField dcField in GridView1.Columns.CloneFields())
// Warum CloneFields?
{
//...
if (dataField != "Name" && dataField != "AlarmOn" && dataField != "Activated" && !(dcField is TemplateField))
                GridView1.Columns.RemoveAt(index);
            // Warum hier index nicht index++ wenn Du schon mit Clone arbeitest.
            else
                index++;



}

Jörg

13.11.2006 - 20:37 Uhr

rdbms.strato.de ist der Server und mit Sicherheit nicht der Provider!

MySQLProv ist ein Provider, bleibt nur die Frage welchen Provider Strator verwendet. Ich schätze mal das Strato eine FAQ oder Wiki hat wo genau beschrieben ist wie Du eine Verbindung über .Net aufbauen kannst.

Jörg

13.11.2006 - 19:34 Uhr

Ansonsten schau mal beim http://www.gridviewguy.com/ vorbei oder lese mal was http://www.gridviewgirl.com/ so an Tipps und Tricks auf Lager haben.

Jörg