Laden...
E
epidemic myCSharp.de - Member
IT Manager, Berater, Entwickler Dabei seit 10.01.2006 100 Beiträge
Benutzerbeschreibung

Forenbeiträge von epidemic Ingesamt 100 Beiträge

19.07.2007 - 07:50 Uhr

Ja, aber wie denn?!!

Die CReports Runtime ist ein eigenständiger .msi Paket.
Zum Einen kriege ich es nicht hin, die Detected Dependies im VS2005 prof. um dieses Paket zu erweitern.
Da müßte ich schon alle DLL's etc wissen um die Install Routine der Crystal Reports Runtime umzugehen.
Ich war jedes mal dazu verdammt , auf dem client Rechner die CRRedist2005_x86.msi des CReports
immer nach der Setup Installation manuell ausführen zu müßen, was natürlich
alles andere als schön ist...

Oder hast Du vielleicht eine andere Idee?

19.07.2007 - 07:19 Uhr

Wie meinst Du es?

Gibt's noch eine abgespeckte Version zur .NET Framework 2.0 alias "dotnetfx.exe"
um die Kundeninstallation zu gewährleisten?

Noch eine Frage Herbivore:
Läßt sich die Crystal Reports Runrime CRRedist2005_x86.msi in die Setup Routine ebenfalls einbetten?

Danke!

18.07.2007 - 17:09 Uhr

Hallo Zusammen,

kann mir jemand von Euch freundlicherweise bestätigen, daß .NET 2.0
Apps auch unter 2000 WKS Service Pack 4 laufen?

Danke!

21.06.2007 - 16:45 Uhr

Hallo Zusammmen,

hat jemand von Euch eine Ahnung ob man Crystal Reports und .NET Framework Runtime ins Setup einbinden kann?

Ich finde es etwas unschön , daß drei Setups hintereinander gestartet werden müßen.

Für Eure Mühe Vielen Dank!

13.06.2007 - 09:01 Uhr

Gern.


           /// <summary >
          /// CellValueChanged event manuell auslösen
         /// durch CommitEdit methode.       
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void dataGridViewCriteria_CurrentCellDirtyStateChanged( object sender , EventArgs e )
        {
            if( dataGridViewCriteria.IsCurrentCellDirty )
            {
                dataGridViewCriteria.CommitEdit( DataGridViewDataErrorContexts.Commit );
            }

        }

//hier exemplarisch 
/// <summary>
        /// löst aus wenn check box clicked
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void dataGridViewCriteria_CellValueChanged( object sender , DataGridViewCellEventArgs e )
        {
            if( e.ColumnIndex == 3  && e.RowIndex >=0  )
            {

                DataGridViewCheckBoxCell oCell = this.dataGridViewCriteria[ "ShowField" , e.RowIndex ] as DataGridViewCheckBoxCell;

                bool bChecked = ( null != oCell && null != oCell.Value && true == ( bool )oCell.Value );

                if( true == bChecked )
                    ( ( DataGridViewTextBoxCell )this.dataGridViewCriteria[ "Filter" , e.RowIndex ] ).Value = "TRUE";
                else
                    ( ( DataGridViewTextBoxCell )this.dataGridViewCriteria[ "Filter" , e.RowIndex ] ).Value = "FALSE";
            }
        }

[

Bisschen kompliziert, funktioniert aber
epidemic

13.06.2007 - 08:06 Uhr

habs gelöst , hat sich erledigt.

13.06.2007 - 07:26 Uhr

Hallo Zusammen,

langsam aber sicher verzweifle ich an einem wahrscheinlich kleinen aber erstmal meinerseits unlösbaren Problem.

Ich verwende einen DataGridView( unbound ) auf dem u.a. eine DataGridViewCheckBoxCell cell als column vorhanden ist.

Mein Problem ist , ich schaff das irgendwie nicht den richtigen checked zustand abzufragen.

Folgenden Versuch hatte ich unternommen:
da die checked propertie nicht existiert, versuchte ich folgendermaßen:

//Auszug aus dem Code


private void dataGridViewCriteria_CellMouseDoubleAndSingleClick( object sender , DataGridViewCellMouseEventArgs e )
{
//weiterer code
  if( ( e.ColumnIndex == 3 )
 {
   DataGridViewCheckBoxCell cbCell = ( DataGridViewCheckBoxCell )    this.dataGridViewCriteria[ "ShowField" , e.RowIndex ];

   //state ist immer true !
  //egal ob checked oder nicht checked
  bool state = ( bool )cbCell.Value;
}
//weiterer Code

}

Idee?

Danke!

14.05.2007 - 14:03 Uhr

Habe ich bereits mit GetSchemaTable gelöst =)

Trotzdem , Danke!

13.05.2007 - 19:17 Uhr

Glaube eher weniger , daß sowas funktioniert.
Entweder serialisierst Du Deine Daten und liest dann diese ein, oder baust Dir einen Pumper z.Bsp als CSV File.
Solche Klassen habe ich , beim Interesse Bitte melden.

13.05.2007 - 14:31 Uhr

Hallo Zusammen,
ich übergebe einen beliebigen CommandText als Select Query
Bsp.:


//code ...
cmdQuery.CommandText="SELECT Name1,Name2,Geburtstag FROM t_Kunden";

Besteht die Möglichkeit über irgendeine Klasse des .NET Frameworks
die Felder die man im SELECT + deren Datentyp übergibt abzufangen?

Für freundliche Tipps wäre ich dankbar!

30.04.2007 - 09:14 Uhr

Original von BerndFfm
Hallo,

wir haben hier Barebones von Asus im Einsatz. Die sind ausreichend gross, leise und im Preis sehr günstig.

Ob allerdings die eingebaute Grafikkarte für Spiele und für Windows Vista ausreicht weiss ich nicht.

Güße Bernd

Kannst Du es etwas konkretisieren?
Nutzt Ihr den für Softwareentwicklung ?

Bei mir kommt keine Gameentwicklung ins Spiel.
Von der Grafik her vielleicht ein paar Animationen auf der Layer oder Web Ebene, mehr aber auch nicht.

Vielen Dank für Eure Anregungen!!!!

30.04.2007 - 08:08 Uhr

Hallo Zusammen,

bei mir ist es endlich soweit.

Mein Entwickler PC( hauptsächlich DB Anwendungen und Shops ) wird mir zu langsam.

Ich hatte gedacht,mir vielleicht so einen kleinen Barebone PC zuzulegen.
Was denkt ihr?
Sind diese genauso leistungsfähig?
Gibts Probleme hinsichtlich der Softwareinstallation?
Erfahrungen?
Eignen sich solche Rechner für Development?
Fragen über Fragen

Für Tipps und konstruktive Antworten wäre ich Euch dankbar!!

01.04.2007 - 13:16 Uhr

Original von Cord Worthmann
this.LabelDownloadProgress
😉

Grüsse

Netter Versuch, leider völlig daneben.

this kennt den Member nicht...

01.04.2007 - 10:56 Uhr

Hallo,

weiß jemand wie man auf ein Control innerhalb eines Progress Templates
eines UpdateProgress zugreifen kann ?


   <asp:UpdateProgress ID="UpdateProgressDownload" runat="server" AssociatedUpdatePanelID="UpdatePanelDownload"
                                    DisplayAfter="1">
                                    
                                    <ProgressTemplate>
                <asp:Label ID="LabelDownloadProgress" runat="server" Text="Download ..."></asp:Label>      
                <asp:Image ID="ImageProgress" runat="server" ImageUrl="~/indicator_flower.gif" />
                                        
                                </ProgressTemplate>
                              
                                
                                </asp:UpdateProgress>    

CodeBehind folgendes versucht:


  Label lbl =
  ( Label )UpdateProgressDownload.FindControl( "LabelDownloadProgress" );
//auch mit  UpdateProgressDownload.TemplateControl.FindControl versucht!!!       

        try
        {

           
                if( lbl != null )
                {
                    lbl.Text = bytes.ToString( );
        
// weiterer code

Ich komme einfach an den control nicht dran!

Danke für Eure Hilfe im voraus!

10.02.2007 - 15:10 Uhr

Hi,
ich habe eine Lösung erarbeitet.

Und zwar so gehts:


  Invalidate( true );
 

Flackert allerdings unschön

10.02.2007 - 15:04 Uhr

Danke Herbivore,
leider funktioniert es nicht.

Versuch mit


ControlPaint.DrawReversibleLine( nrw[ 0 ], nrw [ nrw.Length -1 ] , Color.Transparent  );

10.02.2007 - 14:21 Uhr

Hallo Zusammen,

ich zeichne auf einem BMP eine Silhouette.
Diese möchte ich nach beim mouseover event visualisieren.
Klappt auch prima mit Hilfe von GraphicsPath.
Beim verlassen des Berecheis soll die Silhoutte wieder unsichtbar werden.


 private void PaintItem(  Point [] pt , bool visibleBody, Color cl )
        {
          
              grFX = panel1.CreateGraphics( );
              
              if( visibleBody == true )
              {
                  grFX.DrawLines( new Pen( cl ), pt );
                 
              }
              else
              {
                 
                [COLOR]//Tut sich nix  
[/color]
                grFX.DrawLines( new Pen( Color.Transparent), pt );
                                 
              }


              grFX.Dispose( );
                               
                     
        }

Für freundliche Ideen wäre ich dankbar !

04.01.2007 - 08:36 Uhr

In dem Zusammenhang empfehle wärmstens das Buch

Datenbankprogrammierung mit Visual C# 2005 (Gebundene Ausgabe)
von Walter Doberenz, Thomas Gewinnus

Da steht zwar nicht alles drin, aber doch relativ viel mit guten Bspielen

04.01.2007 - 07:03 Uhr

vergiss den Code 8 nicht, ansonsten kann der Benutzer nichts korrigieren, falls er falsche Nr eingegeben hat 😉

04.01.2007 - 06:46 Uhr

Für Insert,Update und Delete verwendest du die Methode ExecuteNoQuery des SqlCommands.

Für aggregat Funktionen( Count,Sum etc) ExecuteScalar.

Für gewöhliche Querys am einfachsten Views inf Form typisierter DataSets.

oder ExecuteReader des SqlCommands zum Iterieren durch die Datensätze.

19.12.2006 - 06:12 Uhr

Original von exec

Ich weiß auch gar nicht, was ihr habt: Schonmal mit IBM-Entwicklungsumgebungen gearbeitet? Da dauert der Start des Programms schon fast länger als die Installation des SP1 für VS. 😛

Ich will mit Dir hier nicht rumdiskutieren, aber Deine Argumente sind ziemlich pauschal.
Wenn ich nach DREI Stunden Service Pack Installation(dabei dauert full Install max 30 min ??! ) eine Fehlermeldung bekomme , daß meinem Rechner der Speicher fehlt , obwohl noch ausreichend da, da frage ich mich ob bei Microsoft noch Entwickler arbeiten , oder nur noch 18 jährige Azubis.

In dem Sinne, Frohe Weihnachten und viele unterhaltsame Stunden mit dem
"Service Pack1" für Visual Studio 2005.

Ach Übrigens,
in anderen Foren gabs Leute die nach dem Update Probleme mit Kompilierung bestehender Projekte haben.
Nur so am Rande 😉

18.12.2006 - 13:58 Uhr

Nach 3 Stunden Dauerstress mit dem Ding sowohl auf dem WIN 2003 Server als auch Laptop habe ich abgebrochen.

Das Ding braucht selber ein Service Pack!

Unzumutbar, mit diversen Fehlermeldungen etc.

11.12.2006 - 05:43 Uhr

Hallo Zusammen,

habe mir eine Funktion gebastelt mit deren Hilfe ich ein Crystalreport bzw. den Inhalt als Pdf getunnelt via Outlook schicke( Code unten ).

Das einzige Problem ist , ich finde nirgendwo die Möglichkeit den Anhang ausdrücklich zu benennen z.bsp. "Anhang.pdf".

Und so wird die Datei immer als "Untitled.txt" verschickt , was natürlich dumm ist, weil der .txt Typ an Notepad gebunden ist.
Ideen ?

Danke.



        /// <summary>
        /// sends report by email
        /// </summary>
        /// <param name="to"></param>
        /// <param name="subject"></param>
        /// <param name="text"></param>
        /// <returns></returns>
        public bool SendByMail( string to, string subject, string text )
        {

            try
            {
                options.MailToList = to;
                options.MailMessage = text;
                options.MailSubject = subject;
                                               
                
                rep.ExportOptions.ExportFormatType =   ExportFormatType.PortableDocFormat;
                rep.ExportOptions.ExportDestinationType = ExportDestinationType.MicrosoftMail;

                rep.ExportOptions.ExportDestinationOptions = options;
                rep.Export( );

                  MessageBox.Show( String.Format ("Auftragsbestätigung wurde an {0} verschickt !",to ), "INFO", MessageBoxButtons.OK, MessageBoxIcon.Information );
                  return true;
            }
            catch( Exception exp )
            {

                MessageBox.Show( String.Format( "Fehler beim Sender der EMail: {0}", exp.Message ), "FEHLER", MessageBoxButtons.OK, MessageBoxIcon.Error );
                return false;
            }
            
            
          

        }

07.11.2006 - 15:37 Uhr

Ich habe versucht das Beispiel von Microsoft nachzubauen.

Es funktioniert nur dann wenn man KEINE Felder aus dem Dataset an den Bericht anbindet.

Das heißt , ich kann Captions und statische Label abbilden.

Sobald ein Dataset ins Spiel kommt wirft er mir ff exception:

Microsoft.Reporting.WinForms.LocalProcessingException was unhandled
Message="An error occurred during local report processing."
Source="Microsoft.ReportViewer.WinForms"
StackTrace:
at Microsoft.Reporting.WinForms.LocalReport.InternalRender(String format, Boolean allowInternalRenderers, String deviceInfo, CreateAndRegisterStream createStreamCallback, Warning[]& warnings)
at Microsoft.Reporting.WinForms.LocalReport.Render(String format, String deviceInfo, CreateStreamCallback createStream, Warning[]& warnings)
at WindowsApplication2.Form1.Export(LocalReport report) in C:\WINXP\Profiles\Administrator\Desktop\WindowsApplication2\WindowsApplication2\Form1.cs:line 137
at WindowsApplication2.Form1.Run() in C:\WINXP\Profiles\Administrator\Desktop\WindowsApplication2\WindowsApplication2\Form1.cs:line 183
at WindowsApplication2.Form1.button1_Click_2(Object sender, EventArgs e) in C:\WINXP\Profiles\Administrator\Desktop\WindowsApplication2\WindowsApplication2\Form1.cs:line 264
at System.Windows.Forms.Control.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ButtonBase.WndProc(Message& m)
at System.Windows.Forms.Button.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.Run(Form mainForm)
at WindowsApplication2.Program.Main() in C:\WINXP\Profiles\Administrator\Desktop\WindowsApplication2\WindowsApplication2\Program.cs:line 17
at System.AppDomain.nExecuteAssembly(Assembly assembly, String[] args)
at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()

Ideen?????

07.11.2006 - 11:03 Uhr

Hat sich erledigt, ich habe eine Lösung gefunden.
Danke.

07.11.2006 - 10:09 Uhr

Original von Noodles
Schau mal
>
.

Hier besteht allerdings das Problem daß mein DataSet aus einem Objekt Kommt und dieser läßt sich nicht an DataAdapter via SQL binden.

Deshalb kann ich kein XML Export machen.

Un bei der von Microsoft beschriebenen Vorgehensweise müßen die Daten
aus einer serialisierten Datei eingelesen werden

07.11.2006 - 07:17 Uhr

Herzlichen Dank!!!!!!! 😁

06.11.2006 - 18:14 Uhr

Ach Du bist sehr hilfsbereit , Danke, diese Info reicht mir schon.

Weißt Du evtl. noch wie man den Report Viewer umgehen kann um die Ausgabe des Berichtes direkt auf den Drucker zu schicken ?

Danke

06.11.2006 - 15:24 Uhr

Hi,
ja das ist eine rdlc Datei.

Kannst Du das etwas konkretisieren mit der Referenzierung, oder mit Parametern?

06.11.2006 - 09:07 Uhr

Hallo Zusammen,
ich weiß gar nicht ob das die richtige Stelle für den Beitrag ist , Reports bzw. Drucken habe ich nicht gefunden.

Ich verzweifle langsam an einem einfachen Report ( erstellt mit VS 2005 prof.)
Wichtig : kein Crystal Report !

Die Datenbindung erfolgt aus einem Business Object mitllels einer List.
Alles klappt wunderbar, außer folgendes:

Es handelt sich hier um ein Geschäftspapier wo die Kundenanschrift im Kopf Bereich erscheinen soll.
Das Problem ist jedoch, im Bericht kann man die Felder im Kopf und Fuß Bereich nicht dynamisch laden ??!

Was soll das ?

Wie soll ich denn Bitte mein Business Object an die Klasse weiterrefrenzieren, wenn so einfache Sache nicht geht.
Habe schon mit Expressions versucht, leider wird der Wert nicht angezeigt.
Ideen ?
Gruß
Thomas

27.08.2006 - 19:49 Uhr

Klasse!
Danke schön !

Versteh ich trotzdem nicht weshalb es auf einmal weg war...

27.08.2006 - 11:46 Uhr

Hallo Zusammen,
habe seit 2 Tagen folgendes Phänomen:

Ich kreiere eine neue Solution und diese wird im Solution Explorer nicht angezeigt!

Der Explorer zeigt lediglich das Projekt an ( .csproj ).

Die ".sln" wurde übrigens im Verzeichnis angelegt.
Wenn man die Solution Datei jedoch öffnet, springt der VStudio Explorer automatisch auf csproj um, so daß man die Solution nicht sehen kann und somit kein neues Projekt in die Solution hinzufügen kann !

Weiß Jemand zu helfen ?

15.08.2006 - 05:01 Uhr

Hi,
ich beziehe mich darauf was der Golo Haas in seinem ersten Post geschrieben hat.
Mein Beitrag bleibt drin und die Kommentare , Antworten etc. werden gelöscht.
Und das ist auch OK.
Ich hatte auch nicht behauptet, ich hätte die Antworten gelöscht...

14.08.2006 - 20:51 Uhr

Wenn der Beitrag drin bleibt ist das absolut OK!

21.05.2006 - 06:32 Uhr

Hallo Zusammen,

gibts etwas besonderes zu beachten wenn man gejointe Querys im CReport abbilden möchte??
Ich öffne meine Form(in C# 2005 geschrieben) und lade dynamisch mein Report per SQL Statement rein.

Hier die Methode zum Laden:



        private void ConfigureCrystalReports( string cmdText, string reportPath )
        {


            rep = new ReportDocument( );
            rep.Load( reportPath );


            DataTable ro = new DataTable( "t_Stamm" );

            SqlCommand select = new SqlCommand( cmdText , con );

          
            SqlDataAdapter sqlAdapter = new SqlDataAdapter( select );

            sqlAdapter.Fill( ro );

            rep.SetDataSource( ro );


            this.crystalReportViewerStamm.ReportSource = rep;


        }



Hier das Event zum Ausführen der Methode

Code:


private void toolStripButton2_Click( object sender , EventArgs e )
        {
            
            rep = new ReportDocument( );

            sqlText = "SELECT    t_Artikel.ArtikelNr, t_Artikel.Artikelbezeichnung1, t_Artikel.Artikelbezeichnung2, t_Gebinden.Groesse, t_Gebinden.Einheit, t_Gebinden.Verpackung" +
                      " FROM        t_Artikel INNER JOIN " +
                      " t_Gebinden ON t_Artikel.Gebinde = t_Gebinden.GebindenNr";
            string reportPath = Directory.GetCurrentDirectory( ) + "\\CrystalReportArtikelListDetails.rpt";

            ConfigureCrystalReports( sqlText , reportPath );

        }
 
 

Das Join Feld wird nicht angezeigt, obwohl die Query Ok ist!

Ein simples Select mit einer Tabelle funktioniert dagegen ohne Probleme.

Muß etwas beachtet werden , vieleicht bei der Erstellung des Reports?

Danke im voraus!

05.04.2006 - 14:46 Uhr

Original von Programmierhans

Original von Programmierhans

Original von epidemic

Das löst aber mein Problem nicht.

Vermutlich hast Du nicht gesehen, dass ich meinen ersten Post noch ergänzt habe (dort ist auch die Lösung drin)

Noch eine Ergänzung:

Ich würde hierfür gar keine Klasse bauen, sondern nur eine statische Methode welche das File öffnet... schreibt und wieder schliesst.

Die Klasse dient nur zum Verständnis der Funktionalität der Interface in Bezug auf Abstrakte Klassen bzw. Mehrfachvererbung.

Danke!

05.04.2006 - 14:32 Uhr

Original von Programmierhans
Wenn wir eh schon am rumkritisieren sind...

System.GC.SuppressFinalize(this);

Macht auch nur Sinn wenn ein Destructor vorhanden ist...

Ja, der Destruktor war im Thread nicht eingefügt ist aber vorhanden.

Das löst aber mein Problem nicht.

05.04.2006 - 14:30 Uhr

Original von Xqgene
und
wie baue ich eine endlosschleife?....

        public void Dispose()    
        {  
          ...  
           Dispose();  
  
        }  

Natürlich, die Funktion würde rekursiv ablaufen.
Dummer Fehler.

05.04.2006 - 14:17 Uhr

Hallo Zusammen,

Ich hatte etwas mit den Interfaces rumgespielt, um den Sinn zu verstehen.
Ich komme ursprunglich aus der C++ Ecke und Interfaces sind eher ein Java Konstrukt.

Nun habe ich es denke ich(hoffe ich mal) verstanden.

Sicherlich ein guter Ersatz für fehlende Möglichkeit Mehrfachvererbung zu benutzen.

Allerdings und hier kommt meine Frage :
Ich habe ein Problem mit dem using Statement
( nicht mit dem Assembly using verwechseln!).

Folgender simpler Code liegt vor:

Meine Klasse



namespace Logger
{

/// <summary>
/// Summary description FileLogger 
/// The class logs the Informations in the log file
/// VERSION 1.0.0 Date 10.02.2006
/// </summary>
    
    public class FileLogger:IDisposable, IFileLogger
    {
        
        private StreamWriter fileStream;
        
        /// <summary>
        /// Constructor        
        /// </summary>
        public FileLogger( string logFileName,bool appendToLog )
        {
            fileStream       = new StreamWriter( logFileName, appendToLog );
        }
                
        /// <summary>
        /// Write a message to the Log File
        /// </summary>
        public void WriteToLog( string message )
        {
            fileStream.WriteLine( message );
        }

        /// <summary>
        /// Write a message to the Log File
        /// </summary>
        public void WriteToLog( string message, bool setTimeStamp )
        {
            if ( setTimeStamp == true )
            {
                fileStream.WriteLine( DateTime.Now.ToString() + ": " +  message );
            }
            else
            {
                fileStream.WriteLine( message );
                
            }
        }

        // because this class needs a destructor, it also needs this
        // idiomatic Dispose method
        public void Dispose()   
        {
            fileStream.Close();
           
           Dispose();
           System.GC.SuppressFinalize(this);
        }

                


    }

}



Mein Interface:



public interface IFileLogger
{
    void Dispose();
    void WriteToLog(string message);
    void WriteToLog(string message, bool setTimeStamp);
}


Im Hauptprogramm:



 using ( IFileLogger logger = new FileLogger (@"c:\temp\MYLOGGER.txt", false))
 {
               logger.WriteToLog("Hello Logger",true);                
  }


Folgender Fehler kommt:

Error 3 'IFileLogger': type used in a using statement must be implicitly convertible to 'System.IDisposable' F:\Develop\Ressources\Klassen\Logger\TestLogger\Program.cs 12 12 TestLogger

Ohne using mit einer normalen Instanzierung funktionierts ohne Probleme !

Für Tipps und Anregungen wäre ich dankbar!

01.02.2006 - 09:01 Uhr

Hallo Zusammen,
bin Umsteiger von C++.

Es ist allgemein bekannt(mir jedenfalls), daß man Generics mit primitiven typen im C# nicht einsetzen kann.

Beispiel:


       public T Add<T>( ref T zahl1, ref T zahl2 )
        {

            return zahl1 + zahl2;

        }


Error 1 Operator '+' cannot be applied to operands of type 'T' and 'T'

Bei C++ Template Funktionen funktioniert so etwas einwandfrei.
Hier wahrscheinlich wegen fanatischer Typsicherheit nicht.

Habt Ihr das Problem schon mal gehabt und evtl. gelöst ?
Vielleicht mit C++ und CLI in Visual Studio 2005 ?.

26.01.2006 - 17:06 Uhr

Zu dem Thema gibts ein Klasse Webcast von Bernd Marquardt(über 1 Stunde!)

26.01.2006 - 05:45 Uhr

nicht lt. Microsoft !

Hier gibt es fast identisches Beispiel:

http://www.microsoft.com/germany/msdn/library/net/aspnet/AsynchroneSeitenInASPNET20.mspx

25.01.2006 - 13:18 Uhr

Es wird nix angezeigt !

25.01.2006 - 05:04 Uhr

Ich habe versucht die Asynchrone Datenverarbeitung unter ASP.NET 2.0 zu testen.

Folgendes Beispiel mit einem GridView funktioniert leider nicht.

Habt Ihr eine Idee weshalb?


using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System;
using System.Data;
using System.Data.SqlClient;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Configuration;


public partial class Users_Default : System.Web.UI.Page
{


    private SqlConnection _connection;
    private SqlCommand _command;
    private SqlDataReader _reader;

    
    protected void Page_Load(object sender, EventArgs e)
    {

        // Hook PreRenderComplete event for data binding
        this.PreRenderComplete +=
        new EventHandler(Page_PreRenderComplete);

        // Register async methods
        AddOnPreRenderCompleteAsync(
            new BeginEventHandler(BeginAsyncOperation),
            new EndEventHandler(EndAsyncOperation));

    }




    IAsyncResult BeginAsyncOperation(object sender, EventArgs e,
         AsyncCallback cb, object state)
    {
        string connect = WebConfigurationManager.ConnectionStrings
        ["Wardashop"].ConnectionString;
        _connection = new SqlConnection(connect);

        _connection.Open();
        _command = new SqlCommand("Select artikelnr from t_artikelstamm", _connection);

        //SqlDataSourceLokal.SelectCommand


        return _command.BeginExecuteReader(cb, state);
    }

    void EndAsyncOperation(IAsyncResult ar)
    {
        _reader = _command.EndExecuteReader(ar);
    }

    protected void Page_PreRenderComplete(object sender, EventArgs e)
    {

        GridView1.DataSource = _reader;
      
        GridView1.DataBind();


    }

    public override void Dispose()
    {
        if (_connection != null) _connection.Close();
        base.Dispose();
    }




    protected void GridView1_PreRender(object sender, EventArgs e)
    {

    }
}


11.01.2006 - 15:50 Uhr

Ini in der .NET Welt ?

Das paßt irgendwie nicht zusammen...

Also ich würde auf jeden Fall XML nehmen 🙂

10.01.2006 - 17:27 Uhr

Nur ein kleiner Tipp von mir;

Man sollte GRUNDSÄTZLICH Parameter verwenden.

Stichwort "SQL Injection"

Grüße

10.01.2006 - 12:37 Uhr

Also,

erstmal HERZLICHEN DANK für Eure Antworten !!!
Nicht in jedem Developer Forum fühlt man sich sofort dermaßen WOHL.
Danke.

Also , ich alter C++ Verfechter programmiere momentan eine Warenwirtschaft
mit .NET 2.0 / C# und SQL Server 2005 und es macht mir wirklich riesen Spaß !

Einige Konstrukte sind mir noch nicht so gut vertraut und ich versuche natürlich mich etwas tiefer in die C# und NET Welt einzuarbeiten.

back to the topic:

Ich glaube, der norman_timo hat mich verstanden.

Daß mit dem Zugriff auf den Indexer über die index nr in einem params array finde ich wirklich nicht schlecht, da hier das iterieren überflüßig wird.
Stattdessen verwendet man die index nr direkt in einem string {[index]}, so wie das in der WriteLine Funktion praktiziert wird.

Na ja...
Ich werde damit noch etwas rumexperimentieren.

Danke !

10.01.2006 - 07:30 Uhr

Hallo Zusammen,

weiß jemand von Euch wie man Params dynamisch benutzen kann, so wie es in der Write line der Console steht.

Ich möchte die auf den String zugewiesenen Indexer auf eine Variable verlagern.

Das heißt , ich würde gerne die auf den string zugewiesenen Indexer als Rückgabewert erhalten, damit man diesen in einer Variable unterbringen kann.
Die WriteLine Methode ist leider nicht mit einem string rückgabewert in dem zusammenhang überladen.

namespace Params

{
    class Program
    {
        static void Main(string[] args)
        {

            List<int> lst = new List<int>();

            lst.Add(100);
            lst.Add(200);
            lst.Add(300);
            lst.Add(400);
            lst.Add(500);

//diese Funktion kann ich nicht überschreiben, da die Klasse sealed ist
//NETT wäre  ein Rückgabewert mit den auf string zugewiesenen Params!
Console.WriteLine("Eintrag 1 {0},Entrag 2 {1}", lst[0],lst[1]);
        
        }
    }