Laden...
A
Azrael Masters myCSharp.de - Member
Fachinformatiker Anwendungsentwicklung Deutschland Dabei seit 19.05.2005 38 Beiträge
Benutzerbeschreibung

Forenbeiträge von Azrael Masters Ingesamt 38 Beiträge

04.09.2009 - 13:05 Uhr

Ok konnte mir doch selber helfen, anscheinend habe ich die falschen Klassen verwendet.
Es ist nicht "MeetingItem" sondern "AppointmentItem".

I'm so sorry^^

04.09.2009 - 10:44 Uhr

Hallo Zusammen,

ich versuche gerade in eine Windows Form mit einem Gridview die Outlook Kalenderobjekte einzulesen.
Dies mache ich analog einer Methode mit der ich erfolgreich die Kontakte ausgelesen habe.

Jedoch bekomme ich bei den MeetingItems Probleme:
Das COM-Objekt des Typs "System.__ComObject" kann nicht in den Schnittstellentyp "Microsoft.Office.Interop.Outlook.MeetingItem" umgewandelt werden. Dieser Vorgang konnte nicht durchgeführt werden, da der QueryInterface-Aufruf an die COM-Komponente für die Schnittstelle mit der IID "{00063062-0000-0000-C000-000000000046}" aufgrund des folgenden Fehlers nicht durchgeführt werden konnte: Schnittstelle nicht unterstützt (Ausnahme von HRESULT: 0x80004002 (E_NOINTERFACE)).

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Microsoft.Office.Interop.Outlook;

namespace Outlook_TEST
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

            // Outlook Kontext herstellen
            var outlookApplication = new ApplicationClass();
            NameSpace mapiNamespace = outlookApplication.GetNamespace("MAPI");
            #region Kalender
            MAPIFolder meetings = mapiNamespace.GetDefaultFolder(OlDefaultFolders.olFolderCalendar);
            DataTable dtg = new DataTable(); 
            DataColumn dc;
            dc = new DataColumn("Name", System.Type.GetType("System.String"));
            dtg.Columns.Add(dc);
            for (int i = 1; i < meetings.Items.Count + 1; i++)
            {
                var meetingItem = (MeetingItem)meetings.Items[i]; // DER FEHLER
                DataRow dr = dtg.NewRow();
                dr["Name"] = meetingItem.Subject;
                dtg.Rows.Add(dr);
            }
            #endregion

            #region Kontakte
            //MAPIFolder contacts = mapiNamespace.GetDefaultFolder(OlDefaultFolders.olFolderContacts);
            //DataTable dtg = new DataTable(); 
            //DataColumn dc; 
            //// Spalten hinzufügen
            //dc = new DataColumn("Name",System.Type.GetType("System.String")); 
            //dtg.Columns.Add(dc); 
            //dc = new DataColumn("Firma",System.Type.GetType("System.String")); 
            //dtg.Columns.Add(dc); 
            //dc = new DataColumn("Emailadresse",System.Type.GetType("System.String")); 
            //dtg.Columns.Add(dc);
            //dc = new DataColumn("Mobil", System.Type.GetType("System.String"));
            //dtg.Columns.Add(dc); 
            //// Reihen füllen
            //for (int i = 1; i < contacts.Items.Count + 1; i++)
            //{
            //    var contact = (ContactItem)contacts.Items[i];
            //    DataRow dr = dtg.NewRow();
            //    dr["Name"] = contact.FullName;
            //    dr["Firma"] = contact.CompanyName;
            //    dr["Emailadresse"] = contact.Email1Address;
            //    dr["Mobil"] = contact.MobileTelephoneNumber;
            //    dtg.Rows.Add(dr); 
            //}
            #endregion

            // Gridview befüllen
            dataGridView1.DataSource=dtg; 
            dataGridView1.Refresh(); 
        }
    }
}

Habt ihr eine Idee warum dass nicht funktioniert oder wie man es besser machen kann?

Ich möchte erstmal die verschiedenen Ansätze zum auslesen der verschiedenen Outlook Objekte testen und später eine MCML Form im Windows Media Center erstellen um dort die Ergebnisse der Winform/Outlook-Tests darzustellen.

Vielen Dank schonmal für eure Unterstützung.

Viele Grüße

Azrael Masters

09.11.2006 - 16:03 Uhr

hab nun nen umweg gemacht und das ganze in php geschrieben...

dort werden die daten rausselektiert, mit date(bla*bla) in einen datumswert gepresst und dann als nen insert string ausgeben....

@BerndFfm danke für den tipp auch wenn ich leider ausser stande war ihn korrekt zu benutzen, sry 😉

09.11.2006 - 00:03 Uhr

Keiner ne Idee warum das nicht funktioniert? 🙁

Ich verzweifel noch an den paar zeilen heul

08.11.2006 - 23:30 Uhr

Keiner eine Idee? Oder ist das gar mit der Standardlösung von MS gar nicht möglich? 🙁

08.11.2006 - 00:45 Uhr

Hallo liebe Community,

ich wollte gerade per Skinfile jedem Gridview für die Update,Add,Delete,Select etc. die Grafiken setzen.

Das habe ich so gelöst:


<asp:GridView runat="server">
        <Columns>
            <asp:CommandField ButtonType="Image" CancelImageUrl="~/App_Images/Grid/AcceptChanges.gif"
                DeleteImageUrl="~/App_Images/Grid/Delete.gif" EditImageUrl="~/App_Images/Grid/Edit.gif"
                InsertImageUrl="~/App_Images/Grid/Add.gif" NewImageUrl="~/App_Images/Grid/Add.gif"
                SelectImageUrl="~/App_Images/Grid/Select.gif" ShowDeleteButton="True" ShowEditButton="True"
                ShowHeader="True" ShowInsertButton="True" ShowSelectButton="True" UpdateImageUrl="~/App_Images/Grid/AcceptChanges.gif" />
        </Columns>
</asp:GridView>

Das ersetzt mir jedoch alle Spalten im GridView 🙁 Ich möchte aber dass nur wenn eine Cancel/Edit/Insert/Etc. Button Spalte existiert dort automatisch die Grafik setzen 🙁

Kann mir einer nen schnellen Tipp geben wie das funktioniert?

Greets Azzy

31.10.2006 - 16:24 Uhr

Danke für die schnelle antwort, aber ich bekomms irgendwie nich hin 🙁
Zum testen hab übergeb ich die Zahl: 1099853804
(deswegen musst ich auch Int64 nehmen, weil sonst die Wertebereiche zu klein waren. Komischerweiße wird dann days 0.
und ich bin mir gar nicht so sicher, dass das was ich mache richtig is 🙁

*hilfe*


    public static DateTime ConvertBigInt2DateTime(Int64 ticks)
    {
        Int64 days;
        Int64 daysBefore1753;
        Int64 timeTicks;
        Int64 seconds;

        days = ticks / System.Convert.ToInt64(864000000000);
        daysBefore1753 = System.Convert.ToInt64(639905);
        timeTicks = ticks % System.Convert.ToInt64(864000000000);
        seconds = timeTicks / System.Convert.ToInt64(10000000);

DateTime date = new DateTime();
        return date.AddSeconds(seconds).AddDays(days - daysBefore1753).Add(DateTime.Parse("1/1/1753"));
}

31.10.2006 - 00:46 Uhr

Hi ihr lieben,

hab mal wieder ein Frägelchen ^^
Und zwar baue ich ja grade zur Übung an einem Forum und möchte daher die Daten aus meinem WBB Forum übernehmen. Soweit kein Problem, alles mehr oder weniger sauber gelöst 😉

Aber eins gibt mir zu beißen, und zwar speichert das WBB Zeit+Datum als BigInt in der Datenbank, aber ich möchte diese Werte gerne als DateTime in der MS SQL Datenban speichern.

Nun habe ich diese SQL Funktion ergoogelt (mehr war leider nicht zu finden 🙁
Wie müsste die denn in C# aussehen? verzweifelt in die Runde schau

CREATE FUNCTION dbo.udfTicksToDateTime
    (
    @Ticks BIGINT
    )
    RETURNS DATETIME
    AS
    BEGIN

    DECLARE @Days BIGINT
    DECLARE @DaysBefore1753 BIGINT
    DECLARE @TimeTicks BIGINT
    DECLARE @Seconds BIGINT
    
    SET @Days = @Ticks / CONVERT(BIGINT,864000000000)
    SET @DaysBefore1753 = CONVERT(BIGINT,639905)
    SET @TimeTicks = @Ticks % CONVERT(BIGINT,864000000000)
    SET @Seconds = @TimeTicks / CONVERT(BIGINT,10000000)
RETURN DATEADD(s,@Seconds,DATEADD(d,@Days - @DaysBefore1753,CONVERT(DATETIME,'1/1/1753')))
    END 

Ich glaube ich habe sie soweit richtig übersetzt (?) aber die letzte codeline kann ich leider nicht umsetzen?


public static DateTime ConvertBigInt2DateTime(Int32 ticks)
    {
Int32 days;
        Int32 daysBefore1753;
        Int32 timeTicks;
        Int32 seconds;
days = ticks / Convert.ToInt32(864000000000);
        daysBefore1753 = Convert.ToInt32(639905);
        timeTicks = ticks % Convert.ToInt32(864000000000);
        seconds = timeTicks / Convert.ToInt32(10000000);

Hat jemand ne Idee wie ich es es einfacher lösen kann oder den Codeschnippsel nach C# umschreiben kann?

Vielen viele Dank im voraus.

Euer Azzy

13.10.2006 - 12:37 Uhr

Original von Waschbecken
Das Prinzip kann nur auf lokale, physisch existierende Files angewendet werden. Woher soll er wissen ob es die externe Datei gibt, und ob nun Zugriff drauf besteht? Das funktioniert so nicht, da beißt sich die Katze in den Schwanz.

Also entweder securityTrimmingEnabled="true" und nur lokale Dateien und "Sicherheits-Abschnippelung" oder securityTrimmingEnabled="false" und "Zeig an was ich will, aber mach sonst nix".

Stimmt. Danke für die schöne erklärung, du hast mir die Augen geöffnet 🙂

13.10.2006 - 12:15 Uhr

cool danke ich wußte ja ich seh den wald vor lauter bäumen nicht 🙂 funktioniert

nur eins ist sonderlich wenn ich den ersten link auf roles="Administrator" setze vererbt er diese eigenschaft nicht auf die links die ihm untergeordnet sind?
Bei den homepageeigenen funktioniert das. So muss ich jeden externen link ne rolle zuweissen

Why?

13.10.2006 - 11:29 Uhr

Servus Community,

ich baue grade privat an ner asp.net 2.0 seite und dachte ich nutze die tollen neuen Controls "SiteMapPath","Menu". Nun hab ich das Menü soweit fertig in der Web.Config drin, soweit kein Problem.

Nun möchte ich aber in mein Menü auch noch externe links wie die hier einbauen:

    <siteMapNode url="http://www.microsoft.com/germany" title="Microsoft" description="">
      <siteMapNode url="http://www.microsoft.com/downloads/search.aspx?displaylang=de" title="Download Center" description="" />
      <siteMapNode url="http://www.microsoft.com/germany/events" title="WebCasts" description="" />
      <siteMapNode url="http://www.microsoft.com/germany/partner" title="Partner Source" description="" />
      <siteMapNode url="http://www.microsoft.com/germany/dynamics" title="Dynamics" description="" />
    </siteMapNode>

Nur werden die leider nicht angezeigt? 🙁

Was mache ich falsch? 🙁
Die anderen Nodes werden ja auch korrekt angezeigt 😦, ist evtl. gar nicht möglich externe Seiten in die Web.Sitemap aufzunehmen? Aber wie bekomme ich diese dann in mein Menü?

Freue mich schon auf eure Antworten, danke bereits 😉

Gruß Azzy

27.09.2006 - 19:44 Uhr

Original von Mazo
Mir ist schon klar das später ich das sp1 auch in Deutsch bekomme😁
Allerdings steht in dem Text nicht ob noch weitere sprachen dazu kommen werden während das beta programm läuft...🤔

Trotzdem Danke
Mazo

Doch steht doch da

Microsoft will support all Visual Studio 2005 languages when the Service Packs ship. , also wenn das SP1 released wird kommen die anderen sprachen, vorher nich....

Greets Azrael

24.09.2006 - 22:29 Uhr

Original von Azrael Masters

   
            // Zeile, falls eine Zelle gewählt ist  
            DataGridViewRow selectedRow = this.dgv_Overview.SelectedCells[0].OwningRow;  
  
            // Zeile, fals eine Zeile ganz ausgewählt ist  
            //DataGridViewRow selectedRow = this.dgv_Overview.SelectedRows[0];  
  
            // Davon die erste Zelle mit der ID  
            DataGridViewCell idCell = selectedRow.Cells[0];  
  
            // Wert der ID-Zelle (entspricht dem Primärschlüssel + 1, oder?)  
            int Pri = (int)idCell.Value;  
  
  
            // Mit hilfe der ID die Reihe in der Table suchen  
            DataRow DataRow = this.datenbankTest_DataSet.TestTable.Rows[Pri - 1];  
  
EditMask editMask = new EditMask(this, currentDataRow);  
            editMask.ShowDialog();  
          
        private Overview overview;  
        private DataRow dataRow;  
  
        public EditMask(Overview _overview,DataRow _dataRow)  
        {  
            overview = _overview;  
            dataRow = _dataRow;  
            InitializeComponent();  
            txt_Name.Text = _dataRow[1].ToString();  
            txt_Zahl.Text = _dataRow[2].ToString();  
        }  
  
        private void btn_Save_Click(object sender, EventArgs e)  
        {  
            this.dataRow[1] = txt_Name.Text;   
            this.dataRow[2] = this.txt_Zahl.Text;  
  
            this.overview.testTableTableAdapter.Update(dataRow);  
            this.overview.reloadDataSet();  
            this.Close();  
        }  

Hm hab mich geirrt, hab doch noch ein Problem damit... und zwar hab ich übersehen dass ich nur den temporären index benutze und so wenn ich das datagridview sortiere oder zeilen lösche, der index nicht mehr stimmt...

Gibs ne Möglichkeit dgv_Overview.CurrentRow (Typ DataGridView.Row) zu einer DataRow zu konvertieren?

so dass ich im Editfenster immer noch Zuweisen ala
this.dataRow[2] = this.txt_Zahl.Text;

und ein Update
this.overview.testTableTableAdapter.Update(dataRow); durchführen kann???

Bitte helft mir 🙁

23.09.2006 - 18:46 Uhr

Schade dass mir keiner auf die Sprünge geholften hat (Poster oben ausgenommen, ihr wart ne sehr große Hilfe 🙂 )(bei 178 Views), aber ich hab den Fehler nun gefunden^^

hätte einfach nur die zeilen:

this.dataRow.ItemArray[1] = txt_Name.Text; 
            this.dataRow.ItemArray[2] = this.txt_Zahl.Text;

zu

this.dataRow[1] = txt_Name.Text; 
            this.dataRow[2] = this.txt_Zahl.Text;

hätte ändern müssen...

😉 i'm so stupid^^

Greets Azrael

19.09.2006 - 11:49 Uhr

Sry für den Doppelpost, aber keiner eine Idee???

18.09.2006 - 12:20 Uhr

Du könntest einen Timer benutzen 🙂 1sec später bild machen oder so

18.09.2006 - 00:02 Uhr

Hi Fabian,

kein Problem war ja selber ne Woche im Urlaub 🙂

hm habs jetzt ein bisschen unellegant gelöst (aber UPDATE klappt nicht 😦)

PS: Ich verwende das .NET 2.0 Framework

 
            // Zeile, falls eine Zelle gewählt ist
            DataGridViewRow selectedRow = this.dgv_Overview.SelectedCells[0].OwningRow;

            // Zeile, fals eine Zeile ganz ausgewählt ist
            //DataGridViewRow selectedRow = this.dgv_Overview.SelectedRows[0];

            // Davon die erste Zelle mit der ID
            DataGridViewCell idCell = selectedRow.Cells[0];

            // Wert der ID-Zelle (entspricht dem Primärschlüssel + 1, oder?)
            int Pri = (int)idCell.Value;


            // Mit hilfe der ID die Reihe in der Table suchen
            DataRow DataRow = this.datenbankTest_DataSet.TestTable.Rows[Pri - 1];

EditMask editMask = new EditMask(this, currentDataRow);
            editMask.ShowDialog();
        
        private Overview overview;
        private DataRow dataRow;

        public EditMask(Overview _overview,DataRow _dataRow)
        {
            overview = _overview;
            dataRow = _dataRow;
            InitializeComponent();
            txt_Name.Text = _dataRow[1].ToString();
            txt_Zahl.Text = _dataRow[2].ToString();
        }

        private void btn_Save_Click(object sender, EventArgs e)
        {
            // wenn diese Zeile ausgeführt wurde, wird ItemArray nicht aktualisert
            this.dataRow.ItemArray[1] = txt_Name.Text; 
            this.dataRow.ItemArray[2] = this.txt_Zahl.Text;

            this.overview.testTableTableAdapter.Update(dataRow);
            this.overview.reloadDataSet();
            this.Close();
        }

Aber wenn es irgendwie eleganter geht oder hier das problem des nicht updatens gelöst wird, wäre ich dankbar 🙂

gruß Azrael

17.09.2006 - 14:16 Uhr

Öhm also ich würds ganz anderst machen, ich würde im DataGridView auf die Eigenschaften der Geldspalte gehen und dort "DataGridViewCellStyle { NullValue=0,00, Format=C2, Alignment=MiddleRight }" einstellen 🙂

C2 = Währung

Hoffe das hilft dir mehr 😉

Greets Azzy

12.09.2006 - 20:55 Uhr

Original von Rainbird
Dazu gibts Windows-Update.

Natürlich kann man sich die neuste version der Microsoft Data Access Components auch kostenlos herunterladen:


>

Die Microsoft Data Access Components beinhalten sämtliche OLEDB und ODBC-Treiber, die mit Windows ausgeliefert werden. Für andere Datenzugriffstreiber sind entsprechende Installationspakete des jeweiligen Datenbankherstellers zu verwenden.

Vielen dank für exkurs das weiß ich ^^
Nur in der Schule hab ich keine Installationsrechte und nach dem reboot werden alle änderungen am system/partition rückgängig gemacht^^

Naja schade 🙁 aber da ich ja eh bei Release auf den SQL Everywhere wechsle nur ein temporäres Schade Gefühl 🙂

Vielen Dank für die Antworten 🙂

12.09.2006 - 13:08 Uhr

Ups meinte die OLEDB Treiber ^^
hatte nur die fehlermeldung nicht mehr ganz im kopf^^
hab nochmal meinen connectionstring angesehen^^ --> OLEDB 🙂

Ist es grundsätzlich bei keinem Treibermodul möglich?
Wie macht es dann der SQL Server Everywhere, da sind doch auch Runtime/Treiber in den DLLs dabei, die man mit der Anwendung mitgeben kann und schwups rennt die kiste 🙂

12.09.2006 - 08:49 Uhr

Hi mir ist die letzten Tage was aufgefallen^^,

und zwar hab ich ein selbstgeschriebenes Sammlerprogramm mit in die Schule genommen und wollte es dort auf den WIndows 2000 PCs ausführen.

Jedoch gab mir Windows die schöne Fehlermeldung dass die ODBC Treiber eine Version zu alt sei und er deswegen nicht auf die Access Datenbank zugreifen kann.

Gibt es eine Möglichkeit diese Treiber mit der Anwendung mitzuliefern wie beim SQL Server Everywhere (jedenfalls glaub ich dass)? Also ohne Installation sondern einfach DLLs ins Anwendungsverzeichnis?

Vielen Dank schon mal für die antwort 🙂

Euer azrael ^^

06.09.2006 - 08:54 Uhr

Hi herbivore,

vielen Dank erstmal für deinen Link, so hab ich mir das eigentlich fast gedacht 😉

Also grundsätzlich weiß ich wie ich daten auf eine zweite form übergebe aber muss ich das DataSet übergeben oder die werte einzeln samt datensatz id oder wie bekomm ich das am einfachsten hin?

Grüße Azrael

05.09.2006 - 16:22 Uhr

was noch interessanter wäre, was ist wenn derjenige kein Office installiert hat??? Oder nur Open Office oder so? funktioniert das dann trotzdem wenn man die DLLs mitgibt???

Oder gibt es einfach keine Möglichkeit Word/Excel Dateien ohne installiertes Word/Excel von Microsoft (Open Office?) zu erzeugen? Oder ginge das über export als XML und dann umwandlung per XLS?

Gruß Azrael

05.09.2006 - 13:50 Uhr

Hi@all 🙂

Hab da mal ne kleine aber nervige Frage die mich beschäftigt... und zwar:

Ich habe eine Form "Übersicht" in der sich ein DatagridView befindet in der ich grob mal die Datensätze anzeige. Obendrüber befindet sich eine NavigationToolbar mit einer abgeänderten "Add" Funktion, diese ruft nämlich ein zweites Form "Eingabefenster" auf, über dem bequem neue Datensätze hinzugefügt werden können.

Nun mein Problem, ich möchte die "Edit" Funktion auch ersetzen und zwar so, dass der aktuelle Datensatz an mein Form "Eingabefenster" übergeben wird und meine Textboxen etc. mit den Werten gefüllt werden. Aber irgendwie weiß ich nicht wie ich die Daten übergebe... 🤔

Help me please 😁

22.09.2005 - 13:56 Uhr

danke... Lösung gibts hier: http://asp-forum.de/topic.asp?TOPIC_ID=27498

Kann bitte geclosed werden.

22.09.2005 - 12:18 Uhr
<connectionStrings>
<add name="ConnectionString" connectionString="Provider=MySQLProv;Data Source=localhost;Database=NextGenerationPlatform;user id=bmssa;password=bmssa_pwd;option=3”;" providerName="MySql.Data.MySqlClient" />
</connectionStrings>
22.09.2005 - 02:37 Uhr

kommt schon, pls help me. ms machts doch genauso: http://support.microsoft.com/kb/326338/de wieso funzt meine c# version nicht mit Container.DataItem.Rows.GetChildRows ?

21.09.2005 - 17:08 Uhr

Original von FZelle
Hast Du den Provider auch eingetragen?

Schon mal in die Hilfe geschaut?

Wo muss man den dann noch zusätzlich eintragen? Die DLL ist eingebunden.
Oder meinst du den Eintrag in der Web.config, den habe ich auch gesetzt? Ich habe in der Onlinehilfe nachgesehen aber da werden nur die im Standardframework enthaltenen Provider gezeigt. Im Framework 1.1 hab ich ja auch schon mitgearbeitet da ging es ohne Probleme.

20.09.2005 - 22:23 Uhr

In VS2005 gibt es keine Projektdateien für ASP.NET Projekte mehr. Einfach unter "File/New Website" wählen und nicht "File/New Project".

Greets Azrael

20.09.2005 - 21:42 Uhr

Original von Azrael Masters
Ok ich habe mein Projekt jetzt nach .NET 2.0 portiert und verwende die ProviderFactory. Aber wie bekomme ich den MySQL Provider hierrein? In .NET 1.1 habe ich die DLL von
>
eingebunden und bekam so den Namespace MySql.Data. Bei .NET 2.0 scheint aber diese Lösung nicht zu funktionieren da ich weiterhin nur den Access,Oracle,Mssql Provider angezeigt bekomme.

Wo liegt mein Fehler?

Frage besteht immer noch, sry für doppelpost. Zugriff auf die Standardprovider funktionieren tadellos.

20.09.2005 - 21:17 Uhr

Hi,

ich versuche grade in meinem Projekt das VB.NET Beispiel über verschachtelte Repeater in C# zu realisieren. Jedoch treten bei meinem Programmcode immer der folgende Fehler auf:

Error PortalNavMenu.ascx(7): error CS0117: 'object' does not contain a definition for 'Rows'
Error 'object' does not contain a definition for 'Rows' PortalNavMenu.ascx

Ich verwende .NET 2.0 Beta 2 und Visual Studio 2005 Beta 2.

welcher auf die folgende Codestelle hindeutet:
<asp:Repeater id="rptChild" runat="server"
DataSource='<%# Container.DataItem.Rows.GetChildRows("relChild") %>' >

Was mache ich falsch? Im VB Beispiel scheint es zu funktionieren????

Poste mal den Kompletten Code, vielleicht liegt der Teufel ja im Detail.
Vielen Dank im voraus für die Hilfe.

Greets Azrael Masters

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="PortalNavMenu.ascx.cs" Inherits="PortalNavMenu" %>
<ul>
    <asp:Repeater id="rptMaster" runat="server">
        <ItemTemplate>
        <b><%# DataBinder.Eval(Container.DataItem, "CatName")%> 
        </b><br>
        <asp:Repeater id="rptChild" runat="server" DataSource='<%# Container.DataItem.Rows.GetChildRows("relChild") %>' >
            <ItemTemplate>
                <li>
                    <a href="?Feed=<%# Eval("FeedId") %>"><asp:Label ID="FeedNameLabel" runat="server" Text='<%# Eval("FeedName") %>'></asp:Label></a>
                </li>
               <%# DataBinder.Eval(Container.DataItem, "FeedName")%> 
            </ItemTemplate>
        </asp:Repeater>
        </ItemTemplate>
    </asp:Repeater> 
</ul>
using System;
using System.Data;
using System.Data.Common;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Web.Configuration;

public partial class PortalNavMenu : System.Web.UI.UserControl
{
    protected void Page_Load(object sender, EventArgs e)
    {
        string CONNSTRING = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
        DbProviderFactory provider = DbProviderFactories.GetFactory(ConfigurationManager.ConnectionStrings["ConnectionString"].ProviderName);
        DbConnection connection = provider.CreateConnection();        
        DbDataAdapter adapter = provider.CreateDataAdapter();
        connection.ConnectionString = CONNSTRING;
        string SQL = "select * from NGP1_Portal_FeedCats";
        DbCommand command = provider.CreateCommand();
        command.CommandText = SQL;
        command.Connection = connection;
        DataSet ds = new DataSet();
        adapter.SelectCommand = command;
        adapter.Fill(ds,"NGP1_Portal_FeedCats");

        string SQL2 = "select * from NGP1_Portal_Feeds";
        DbCommand command2 = provider.CreateCommand();
        command2.CommandText = SQL2;
        command2.Connection = connection;
        adapter.SelectCommand = command2;
        adapter.Fill(ds, "NGP1_Portal_Feeds"); 

        ds.Relations.Add("relChild", ds.Tables["NGP1_Portal_FeedCats"].Columns["CatId"], ds.Tables["NGP1_Portal_Feeds"].Columns["FeedCat"]);
        rptMaster.DataSource = ds.Tables["NGP1_Portal_FeedCats"];

        Page.DataBind();
        connection.Close();
    }
}

31.08.2005 - 21:30 Uhr

Ok ich habe mein Projekt jetzt nach .NET 2.0 portiert und verwende die ProviderFactory. Aber wie bekomme ich den MySQL Provider hierrein? In .NET 1.1 habe ich die DLL von www.mysql.de eingebunden und bekam so den Namespace MySql.Data. Bei .NET 2.0 scheint aber diese Lösung nicht zu funktionieren da ich weiterhin nur den Access,Oracle,Mssql Provider angezeigt bekomme.

Wo liegt mein Fehler?

31.08.2005 - 19:28 Uhr

Hi,

ich schreibe aktuell meine erste Webanwendung mithilfe des .NET Frameworks 2.0 und Visual Studio 2005 Beta 2:

Nun meine Frage: Wann benutze ich Usercontrols (*.ascx) und wann *.aspx Seiten?
Seit Einführung der Masterpages ist ja das Design vordefiniert und so könnte ich nur *.aspx Seiten verwenden, aber wofür dan die *.ascx Controls?

  1. Frage wie kann ich die Masterpage und das Skinfile zur Laufzeit ändern? Sprich ein User stellt in seinem Profil ein dass er eine andere Masterpage verwenden möchte? Für mich sieht der Eintrag auf den ersten Blick statisch fest aus.

Ich bedanke mich bereits im voraus für die Antworten 🙂

Greetings Azrael Masters

27.08.2005 - 23:18 Uhr

Da mein Projekt privater Natur ist und der Einarbeitung dient bei der danach was ne nützliche Webapplikation rausspringt ja 🙂 also erstmal vielen Dank.

Noch die kurze Frage bevor ich mir den Webcast ansehe, entspricht der ProviderFactory etwa dem: ?

Dachte es wäre einfach nur ein klasse mit nem Switch der die jeweiligen Verbindungen aufbauen kann und dann nur noch das Dataset returnt, aber das war evtl. zu einfach gedacht. ka.

Nicht dass ich jetzt umstelle und mir das Webcast anschaue und trotzdem mein Ziel eines einfaches Datenbankswitchs umfahre bzw. nicht mit klar komme weil es dann doch zu kompliziert ist 🙂 Da aktuell ja mein Projekt ja mit dem Framework 1.1 konzipiert ist. Hab mir jetzt erstmal aus der MSDN VS2005 installiert mal schauen.

Dankeschön 🙂^

Mal so ne Frage, gibts irgendwo ein Einführungstutorial für Webapplikationen in .NET 2.0 weil da sind ja einige Elemente dazugekommen, die ich von vorher nicht kannte?

27.08.2005 - 19:24 Uhr

Erstmal Dankeschön für die schnelle qualifizierte Antwort.

Leider kann ich mit dem .NET Gentle nicht viel anfangen da ich es nunja nicht verstehe X(

Die ProviderFactory im 2.0 Framework übernimmt diese Arbeit automatisch oder wie darf ich das verstehen? Bin noch relativ neu wenns zu technisch wird (z.b. DAL: DataAccessLayer 🤔
HL: HighLevel 🤔
LL: LowLevel 🤔 ) verlier ich den durchblick ^^ich benutz mein aktuelles Projekt in ASP.NET um die Webentwicklung in C# und ADO.NET Anbindung zu lernen, und da ich am besten an der Praxis lerne fehlt da noch ein bisschen know-how =)

Sorry hätte ich vielleicht vorher erwähnen sollen.

Dachte es wäre einfach nur ein klasse mit nem Switch der die jeweiligen Verbindungen aufbauen kann und dann nur noch das Dataset returnt, aber das war evtl. zu einfach gedacht. ka.

27.08.2005 - 02:57 Uhr

Hi ich bins mal wieder ^^,

hab ausnahmsweiße mal ein privates Problem. Und zwar arbeite ich grade an meiner ersten ASP.NET Webapplikation mit der zuhilfenahme von C#. Soweit kein problem, komme auch zügig voran. Mein Problem ist der Datenbankzugriff. Ich möchte wenn es überhaupt möglich ist (denke aber eher schon^^) dem User die Wahl überlassen welche Datenbank er einsetzt (MS SQL, MySQL, Oracle, MS Access 😛). Den Datenbanktyp wäre in der web.config hinterlegt. Nur für jeden oben genannten Datenbanktyp gibt es ja eigene Befehle bzw. Objekte. Gibt es evtl. bereits eine fertige Klasse auf die ich zugreifen könnte? Oder wie programmiere ich mir am besten selbst eine Datenzugriffsklasse in die ich meine SQL Befehle+DB Typ hineingebe und dann die von mir gewünschten Daten in den jeweiligen Datasets,Repeatern,Datalists usw. angezeigt werden?

Evtl. eine Anfängerfrage keine Ahnung, hab leider zu dem Thema universeller Datenzugriff nichts in C# gefunden 🙁 hoffe ihr könnt mir helfen.

Vielen Dank bereits.

Gruß Azrael Masters

20.05.2005 - 00:04 Uhr

Erstmal vielen Dank für deine schnelle und vor allem professionelle Hilfe, sie hat mich meiner Entscheidung ein Stück näher gebracht. Würdest du prinzipiell sagen dass es sinnvoll ist diese Software in .NET zu realisieren?

Es soll eigentlich für jedes Windows OS ausgelegt sein, ala Symantec PC Anywhere. RealVNC war auch mein erster Gedanke, aber der Kunde möchte dieses "Remote Controll Center" komplett in seine Softwaresuite integriert haben.
Der Projektleiter meinte es seie ja angeblich nicht schwer zu realisieren da bereits seiner Aussage nach "minderintelligente" Jugendliche in der Lage wären einen Trojaner zu schreiben, was ja im eigentlichen Sinne ja auf einer erweiterten/spezialiserten RemoteControll basiert. Mit der Basis gebe ich ihm auch Recht, bloß bei der Realisierung bin ich mir da noch ziemlich unschlüßig, zum Glück ließ er mir die Realiserung und Implementierung zur freien Wahl.

Meine persönliche Lösung wäre auch VNC, RDP oder PC Anywhere gewesen, aber Kundenwunsch ist ja bekanntlich Kundenwunsch und Chefewünscht sich natürlich auch mehr zu fakturieren als nur eine Softwarevermittlung. Das mit dem DeviceTreiber wird ja anscheinend dann schon ne größere Sache. Ich dachte durch die Wahl von C# könnte ich es plattformunabhängig (auf jedenfall im Winbereich) halten und mithilfe bereits definierter Klassen wie deine Beispiele System.Windows.Forms.Sendkeys() oder über P/Invoke lösen, Filetransfer der XML, SOAP Kommunikation ist ja in C# auch einfach realisierbar. Ich erinnere mich ich hätte mal einen Quellcode für irgendeinen Win98 Admin Remote Controll gesehen, da wurde bereits alles gelöst, bis auf das ScreenCapturing/Screening. Diese Lösung basierte aber auf C++ wenn ich mich nicht recht insinne und funktionierte eben nur zugeschnitten auf Windows 98. Eine unschöne Massnahme des Screencapturing wäre ja das sekundenhafte Screenshot erstellen, jpg komprimieren und über einen xmldatenstrom in binärcode des screens oder direkte Kommunikation übers netzwerk.

19.05.2005 - 22:51 Uhr

Hallo Community,

ich wurde von meiner Firma vor ein neues Projekt gestellt, was mir persönlich ein paar Fragen aufwirft. Ich hoffe ihr könnt mir helfen, bin für jede Hilfe dankbar 🙂

Zum Projekt:
Es ist geplant in unsere Software eine RemoteControll ala Windows XP Remote Desktop einzubauen. Da wir ziemlich zukunftsorientiert programmieren möchten wäre es naheliegend eine .Net Programmiersprache (mein Favourit C#) zu verwenden. Dieses RemoteAddin soll über FileTransfer, Screen-Streaming zum Admin, Remote Maus- und Tastatursteuerung, sowie einen Chat mit dem Anwender am Zielhost verfügen. Soviel zu den Minimalanforderungen. Das Programm muss im Hintergrund, vollkommen unsichtbar und nicht deaktivierbar für den Anwender ablaufen, man möchte ihn ja nicht überfordern/verunsichern/zum ausprobieren ermutigen.

Fragen:
Ist es möglich dies in C# zu entwickeln?
Ist es sinnvoll oder wäre dann doch C++ oder Delphi geeigneter?
Gäbe es Hindernisse wie eingeschränkte Funktionalität unter nicht Admin-accounts?