Laden...
C
CoderboyPB myCSharp.de - Member
Softwareentwickler Paderborn Dabei seit 09.01.2008 327 Beiträge
Benutzerbeschreibung

Forenbeiträge von CoderboyPB Ingesamt 327 Beiträge

20.01.2009 - 16:09 Uhr

Bevor ich mir jetzt die ganze Arbeit umsonst mache:

Spuckt APS.NET eine Fehlermeldung aus, wenn ich eine Sitemap anlege, ohne dass die darin verlinkten Seiten existieren ?

Ich habe nämlich keine Unterseiten, ich wollte eigentlich einfach nur eine (fiktive) Sitemap erstellen und diese dann als TreeView, Menu, etc. visualisieren.

Es geht mir also allein um den Lerneffekt, nicht um eine wirkliche Anwendung.

19.01.2009 - 00:23 Uhr

<asp:Menu ID="menue1" runat="server" DataSource="mySitemap">
</asp:Menu>
<asp:SiteMapDataSource ID="mySitemap" runat="server" StartingNodeUrl="~/WebForm1.aspx" />


<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
  <siteMapNode title="Home" description="Home" url="~/WebForm1.aspx">
  </siteMapNode>
</siteMap>

Bei dem oberen Teil handelt es sich um einen Ausschnitt. Bis auf die URL und der DataSource ID ist es 1:1 der Code aus dem Buch ASP.NET 3.5 mit C# 2008 von Holger Schwichtenberg.

Die Sitemap befindet sich ordnungsgemäß im Application Root Verzeichnis.

Nach dem Starten bekomme ich folgende Fehlermeldung:

Parserfehler

Beschreibung: Fehler beim Verarbeiten einer Resource, die für diese Anforderung erforderlich ist. Überprüfen Sie folgende Fehlerinformationen und ändern Sie die Quelldatei entsprechend.

Parserfehlermeldung: Die DataSource-Eigenschaft kann nicht deklarativ festgelegt werden.

Quellfehler:

Zeile 5: <asp:Menu ID="menue1" runat="server" DataSource="mySitemap">
Zeile 6: </asp:Menu>
Zeile 7: <asp:SiteMapDataSource ID="mySitemap" runat="server" StartingNodeUrl="~/WebForm1.aspx" />

Was mache ich fasch, bzw. was will mir Microsoft mit dieser nichts sagenden Fehlermeldung mitteilen ? 🤔 X(

19.01.2009 - 00:07 Uhr

Ich werde dir morgen antworten.
Habe da letztens selbst mal was gecodet. Allerdings ist der Code auf nem anderen Notebook.

So, hier nun wie versprochen:


<img src="bild.gif" width="720" height="480"  />
<img id="redmask" src="redmask.jpg" style="margin-top:-480px; -moz-opacity: 0.85; filter:Alpha(opacity=85, finishopacity=85, style=3); visibility:hidden;" />

mit

document.getElementById("redmask").style.visibility = visible;

machst du die Maske sichtbar.

-moz-opacity sorgt für die Transparenz im Firefox, filter für die im IE. Willst du mehr Transparenz, dann ersetze einfach die 85 durch einen anderen Wert.

100, bzw. 1.00 steht für komplett undurchsichtig, 0 für komplett durchsichtig.

Beim Internet Explorer musst du auf den margin-wert noch 20 subtrahieren (in diesem Beispiel also -500 statt -480. Das liegt an dem besch ... Box-Modell des IE.

20.12.2008 - 05:33 Uhr

Ich habe von O'Reilly aus der Reihe 'kurz & gut' die Ausgabe für C#

Leider fehlt bei O'Reilly so etwas für ASP.NET 😦

Kennt hier jemand eine gute ASP.NET Referenz in diesem typischen Taschenbuchformat ?

Ich stelle mir das inhaltlich etwa so vor:

Allgemeine Problemstellungen:

  • Was sind Masterpages
  • Code Behind Pages
  • Wie baut man eine webconfig auf
  • Sessionhandling
  • Cookies
  • ASP Tag Referenz
  • ASP Klassen Referenz

Halt genau die Sachen, die man unmöglich alle im Kopf haben kann, aber immer wieder braucht ...

20.12.2008 - 05:13 Uhr

Ich finds ne Klasse Sache von Horst.

Schon heute wird unsere Gesellschaft von Computern geprägt, und das wird sich noch weiter steigern.
Da kann man gar nicht früh genug anfangen, sich in die Materie einzuarbeiten.

Ich wäre heute dankbar, wenn ich diese Möglichkeiten früher gehabt hätte, aber zu meiner Zeit waren Computer noch Luxusartikel, die eben nicht jeder bezahlen konnte ...

Das führte dazu, dass ich meinen ersten Rechner, einen C64 bekam, als dieser schon fast wieder out war.
Ich bekam ihn aus dritter Hand für 30 DM von meinem Cousin für welcher ihn seinerzeit von seiner Schule abgekauft hatte, die diesen damals aussortiert hatten ...

Mit diesem programmierte ich dann bis zum Studiumsbeginn, eher ich dann die Uni-Rechner (Unix) unsicher machte.

Bis ich meinen ersten eigenen PC bekam vergingen weitere 4 Jahre und wir hatten gerade einen Jahrtausendwechsel hinter uns. Auch dieser war ein Auslaufmodell (gebraucht gekauft), weshalb darauf nur Win 95 lief.

Ich könnte heute viel weiter sein, wenn ich schon 10 Jahre früher auf nem PC die ersten Gehversuche mit C gemacht hätte.

Deshalb noch mal Kompliment an Horst. Wenn sein Filius das Angebot annimmt, kann er ihm echt Türen damit öffnen, sofern er drann bleibt.

20.12.2008 - 03:36 Uhr

Hallo 😃

Ich arbeite gerade das Buch 'Einstieg in ASP.NET' von Mathias Lohrer, Galileo Computing, durch.

Grundlegendes Problem dabei: Der Autor benutzt Visual Basic, ich aber bin C# Coder, d.h. ich muss mir alles in C# umschreiben ...

In diesem Fall geht es darum ein Objekt in den Session Scope einzubinden.
Ich habe nun folgende Dateien:

Default.aspx:


<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <h3>Demo zur Klasseninstanz mit Session-Scope, Seite 1</h3>
        <p>Diese Session hat diesen Pfad zurückgelegt:</p> 
        <p runat="server" id="ausgabe" />
        <a href="session08.aspx">Zur Seite 2</a>
    </div>
    </form>
</body>
</html>

Default.aspx.cs (Code Behind Datei):


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {
        mySB.append(Request.FilePath + "<br>");
        ausgabe.InnerHtml = mySB.toString();
    }
}

Und hier noch die Global.asax:


<%@ Application Language="C#" %>
<object id="mySB"
        runat="server"
        scope="session"
        class="System.Text.StringBuilder"
/>

Wenn ich das ganze nun starte bekomme ich folgende Fehlermeldungen:

In der global.asax ist System.Text.StringBuilder unterstrichen und es gibt folgende Aussage:
"class" oder der CssClass-Wert wurde nicht definiert.

Zudem gibt es noch die Fehlermeldung:
Der Name "mySB" ist im aktuellen Kontext nicht vorhanden.

Ich selbst bin hier mit meinem Latein am Ende.

Ich benutze Visual Web Developer 2008 Express Edition, während sich das Buch auf ASP.NET 1.0 bezieht.
Habe ich hier eine deprecated Methode erwischt, welche nicht mehr unterstützt wird, oder was mache ich hier falsch ?

Wäre echt lieb, wenn mir hier jemand weiterhelfen könnte.

schwarzblaue Grüße aus Paderborn

23.10.2008 - 09:22 Uhr

Tja, ehrlich gesagt verstehe ich es auch nicht.
Nur Kollege ist an mich rangetreten, weil ich hier der PHP 'Experte' (deren Aussage, nicht meine) bin.

Aber ich werde es mal weiter geben, dass man den Upload auch OHNE ActiveX realisieren kann.

Danke schon mal an dieser Stelle 🙂

23.10.2008 - 09:09 Uhr

Problem:
Es soll ein Dateiupload realisiert werden, allerdings hat der Kunde in seiner Umgebung ActiveX deaktiviert.

Deshalb die Frage:
Kann man PHP innnerhalb einer ASP.Net Umgebung laufen lassen und dort dann mit einem ganz 'normalen' Browser Upload und PHP diesen realisieren ?

03.03.2008 - 18:30 Uhr

Visual Studio 2005

Ich will erreichen, dass ich den Panel, in dem die externe ASP.NET Seite reingeladen wird von 'Innen' wieder geschlossen werden kann.

Ich könnte zwar den Button vor dem Server.Execute Aufruf setzen (Diese Lösung funktioniert), aber ich hätte den aus Layoutgründen lieber in der Tabelle definiert, welche sich in der externen ASP Seite befindet.)

Offengestanden weiss ich nicht genau was Server.Execute genau macht 😉
Habe damals hier im Forum die Möglichkeit eines PHP-Include Befehls in ASP gesucht, und bin dabei auf diese Möglichkeit gestoßen.

Im Panel ist das ganze, weil es ein Layer ist, der mittels CssClass ein Stylesheet mit einem hohen z-index und einer absoluten Positionierung zugewiesen bekommt.
Der hohe z-index, weil es temporär ÜBER dem eigentlichen Content angezeigt werden soll.

Somit kann ich über den ID Namen per Serverseitigen Script zugreifen und das Ding ein- und wieder ausblenden.

Nochmal kurz zusammengefasst:
Ich möchte aus einem includierten ASP.NET Script heraus eine Variable des einbindenden Scripts zugreifen.

Ich befürchte ja, dass es nicht geht, aber vielleicht gibt es da ja doch nen übergeordnetes Objekt, über das ich den Zugriff bekomme ?

Gruß Mirco

03.03.2008 - 15:50 Uhr

Hallo, ich schon wieder ... 😉

Ich habe folgenden Panel:


<asp:Panel runat="server" id="Help1" CssClass="HelpLayer" Visible="false"> 
        <%
            Server.Execute("help.aspx");
        %>
</asp:Panel>

Das ganz soll ein Help-Layer werden, der durch einen Klick auf einen anderen Button (hier nicht im Code) sichtbar wird.

Nun soll innerhalb des Layers ein Button, der ihn wieder 'schließt' , will heißen, unsichtbar macht.

hier für habe ich in help.aspx folgende Zeilen:


<script runat="server">
    protected void CloseButton(object sender, EventArgs e)
    {
  	 	Help1.Visible = false;
    }
</script>

Ihr könnt es euch wohl schon denken, die ASP.NET Seite kennt Help1, den Panel, mit der Hilfe nicht.

Nun meine Frage:
Gibt es eine Möglichkeit, Dokumentenübergreifend auf Help1 zuzugreifen, oder komme ich aus help.aspx nicht raus ?

PS: Falls die Frage kommt, warum ich den CloseButton nicht direkt in den Panel reinschreibe noch VOR dem Server.Execute Befehl, das hat Design-Gründe, da der Button innerhalb einer Tabelle in help.aspx angeordnet ist ...

Best regards from Paderborn

03.03.2008 - 12:46 Uhr

Hi Xynratron 🙂

GEIL !!!

Danke, Viele vielen Dank, endlich funzt es !!!

Es gab nur noch ein Problem:

Das DIV Tag um das GridView wird ja von ASP erzeugt, so dass ich darauf keinen Einfluß habe, aber ich habe das jetzt mit Hilfe eines allgemeinen Stylesheets für DIV Elemente gelöst.

explizite Breitenangaben überschreiben die allgemeinen Angaben ja, wenn wirklich mal eine Breite festgelegt werden muss.

03.03.2008 - 10:08 Uhr

Hallo liebe Community, ich habe folgendes Problem:

So soll es aussehen, und so stellt es auch der Firefox dar:
http://www.ray23.com/sollzustand.gif

Und das macht der Internet Explorer draus ... :
http://www.ray23.com/fehler.html

Ich sitze jetzt seit rund 2 Wochen (mit Unterbrechungen) an diesem Problem, kann es aber nicht lösen.

Das krasse ist ja, dass die anderen Unterseiten also die Views funktioniern (Ich habe mich bei der HTML Seite aber jetzt nur alleine auf den erzeugten sichtbaren View konzentriert um es übersichtlicher zu halten)

Ich vermute es liegt am fehlerhaften Box-Modell des IE, bin aber mit meinem Latein am Ende, da ich wohl doch schon so ziemlich alles mögliche ausprobiert habe.

Wäre sehr nett, wenn mir jemand helfen könnte.
Vielen Dank schon mal.

schwarz blaue Grüße aus der Stadt des Zweitligaabsteigers.

23.02.2008 - 01:48 Uhr

Hi Peter,

vielen Dank. Hast mir echt geholfen. Habe nicht nur die Lösung gefunden (Headerstyle-width Attribut), sondern durch den Link auch noch eine neue Wissensbank gefunden. 👍

22.02.2008 - 13:45 Uhr

Hi Peter,

Shit, ich glaube ich habe mich etwas unglücklich ausgedrückt 😦

Mit ausgewählte meinte ich, dass ich GANZ BESTIMMTE (Genau genommen sind es die ersten 4 Spalten) eine feste Breite zuweisen möchte.

Mit einer Auswahl an sich hat das nichts zu tun. Sorry noch mal, war nen bissel blöd bzw. zweideutig formuliert.
Mea Culpa.

22.02.2008 - 10:44 Uhr

Hallo liebe Community.

Nachdem ich jetzt schon rund eine Stunde lang die Forumssuche benutzt habe, habe ich die Antwort immer noch nicht gefunden.

Folgendes Problem:

Ich sitze derzeit an einer Vorlage eines GrafikDesigners für eine Webseite, der für die Datenausgaben ganz bestimmte Tabellen designt hat.

Sein Design sieht sieht im Header eine Grafik vor, die technisch aber über MEHRERE Spalten geht.
Da mir GridView nicht die Möglichkeiten eines RowSpan (oder Colspan ?) gibt, habe ich jetzt die Grafiken gesliced und auf die Felder verteilt, was (O Wunder) sogar im Firefox UND dem IE passt.

Das Problem ist aber, wenn ich die GridView nun mit anderen Werten füllen lasse (es geht um die SELBE GridView) dann kann es passieren, dass die Werte die in den Spalten stehen kürzer sind und nun die GridView nicht mehr soviel Breite braucht.
Da aber eine feste Gesamtbreite vorgegeben ist, verbreitert er die ERSTE Spalte, eben jene, in der das erste Hintergrundbild-Teil ist, was dann natürlich nicht mehr zusammenpasst ...

Deshalb jetzt meine Frage:

Wie kann ich erreichen, dass AUSGEWÄHLTE Spalten immer eine feste Breite haben (der Inhalt dieser Spalten ist immer gleich) ?

PS: Ich weiss, dass das was ich da mache im Grunde genommen großer Mist ist, aber was soll ich machen, es gibt nun mal Leute, die haben mehr zu sagen, als die die sich damit auskennen, und die haben sich halt eine gewisse visuelle Vorstellung in den Kopf gesetzt ... 😉

Wäre Nett, wenn mir jemand helfen könnte.

24.01.2008 - 10:07 Uhr

Jain.

Ich bin in Sachen Server und Netzwerk nicht so fit. Bin halt Anwendungsentwickler und kein FISI (Fachinformatiker Systemintegration) ...

Bisher habe ich Datenbanken immer so verbunden, weshalb ich das halt nicht anders kannte ... :


<?php

$server = "localhost";
$user = "Grafporno";
$pass = "geht keinem was an";

mysql_connect($server, $user, $pass);
$dbi = mysql_select_db("Meine_grosse_Pornosammlung");

$sql = "SELECT id,Title FROM Movies WHERE Actress='Gina Wild'";

$res = mysql_query($sql);

while(list($id,$title) = mysql_fetch_row($res))
{
     echo "id $title<br>\n";
}

mysql_close($dbi);

?>

Anmerkung: Die Datenbank und die Inhalte sind rein fiktiver Natur 😁

23.01.2008 - 23:43 Uhr

@FZelle:

VIELEN VIELEN VIELEN DANK !!! 👍 👍 👍

Es funzt endlich. Aber nach so nem Fehler kann man natürlich lange suchen, das kann man nur wissen, und leider steht es wohl irgendwo versteckt ...

Sollte man mal dazu schreiben, wenn man schon Bücher über Datenbankanbindung mit ADO.NET schreibt ...

23.01.2008 - 11:03 Uhr

funzt auch nicht. mal abgesehen, aber wenigstens bekomme ich eine Fehlermeldung weil userid nicht existiert, da es User ID heisst. So sehe ich wenigstens, dass der ganze Mist überhaupt noch lebt und bereit ist mit mir zu kommunizieren ...

Aber trotzdem danke für deine Bemühungen 👍

23.01.2008 - 10:50 Uhr

verwendetes Datenbanksystem: MSQL 2005

Ich habe folgenden Code:


SqlConnection con = new SqlConnection();
string con_string = "Server=localhost;Trusted_Connection=false;User ID=sa;Password=start123;Database=Testdatenbank";
try
{
   con.ConnectionString = con_string;
   con.Open();
}
catch (Exception e)
{
   Console.WriteLine(e.Message);
}

string strSQL = "SELECT id, Name FROM Verein";

SqlCommand cmd = new SqlCommand(strSQL, con);

// Diese Zeile löst die Exception aus
SqlDataReader dr = cmd.ExecuteReader();

while (dr.Read())
{
   Console.WriteLine("{0,-20}{1,-20}",dr["id"], dr["Name"]);
}

dr.Close();
con.Close();

So, ich habe einen MS SQL Server 2005 Express Edition am laufen, welcher einen Admin User mit dem Namen sa und dem Passwort start123 hat, mit welchem ich mich auch im SQL Studio selber anmelden kann (Habe das ausprobiert !)

Bei dem obigen Code berufe ich mich auf den Inhalt des Buches C# 2005 von Gallileo Press (openbook), Kapitel 26 und dem dort beschriebenen Connection String:
http://www.galileocomputing.de/openbook/visual_csharp/visual_csharp_26_001.htm#Xxxobkap2600104001b891f03a19d

Es ist ja nun nicht so, dass ich nicht gesucht getan und gemacht habe, und alles mögliche ausprobiert habe, aber es ist immer das selbe:

In der (mit Kommentar) markierten Befehlszeile wird eine Exception ausgelöst, welche mitteilt, dass keine Verbindung zur Datenbank besteht, während dort, wo ich eine erwarte und diese mit try abzufangen versuche (Verbindungsaufbau) KEINE ausgelöst wird ...

Wäre sehr nett, wenn mir da mal jemand helfen könnte.

18.01.2008 - 13:09 Uhr

Hi Khalid,

danke für deine schnelle Antwort 👍

Kurz ein paar Erklärungen:
Bisher habe ich Datenbanken nur in MySQL entwickelt (Abfragen mit PHP, bzw. Querys über phpMyAdmin).

Bei meinem INSERT Statement gehe ich davon aus, dass 'id' ein Primärer Schlüssel mit Auto Increment ist.

Wenn also der letzte id Wert in der Tabelle 5 beträgt, dann würde durch die Übergabe eines leeren Wertes quasi von der Datenbank selbstständig der Wert 6 vergeben werden.

Mit genau diesem Muster habe ich jahrelang Erfolg gehabt und so neue Datensätze (aus HTML-Formularen generiert) in die Datenbank geschrieben.

OK, vielleicht ist es etwas naiv von mir die Existenz dieser Funktionalität auch bei MS SQL Server voraus zu setzen, anderer seits wiederum, hört man immer wieder das MS SQL viel mächtiger als MySQL ist, weshalb ich so eine simple - ich sah sie bisher als Standard - Funktionalität, bzw. ANSI SQL irgendwie doch zu recht erwarte.

Kurz zum MS SQL Server:
Ich habe bestimmt zwei Stunden nach einer Funktionalität zum Eintragen eines Datensatzes gesucht (Tabelle und Spalten konnte ich anlegen), aber nirgendwo was gefunden, obwohl ich jeden Menüpunkt durchgeschaut habe ...

Dabei ist es gar nicht mein Ansinnen jetzt groß einen auf Datenbank Admin zu machen, ich wollte lediglich eine kleine Testdatenbank aufbauen um meine ADO.NET Programmierung zu testen.

18.01.2008 - 11:24 Uhr

So, ich noch mal. :evil:

Ich habe immer noch keinen MS SQL-Server installiert, bzw. ihn inzwischen schon zum zweiten mal deinstalliert (und ein drittes mal kommt mir dieses Sch ... Programm auch nicht mehr auf die Platte ...)
Aber ich möchte jetzt auch keine Diskussion über Vor- und Nachteile des MS SQL Server lostreten.

Ausserdem denke ich, dass diese Frage hier eher die ADO.NET Schnittstelle im Allgemeinen betrifft.

Ich habe folgenden Code:


// Database Connection
String connectionString = " ... "; // ToDo: Insert Connection String
SqlConnection con = new SqlConnection(connectionString);
SqlCommand cmd;
con.Open();

int returnID;

sql = "INSERT INTO Vereine (id, Name) OUTPUT INSERTED.id VALUES ('', 'SC Paderborn 07')";

cmd = new SqlCommand(sql,con);
returnID = (int)cmd.ExecuteScalar(); 

con.Close();

Mit der Datenbank Verbindung bin ich mir zu 99,9 % sicher, dass das so richtig ist, zumindest wird das im openbook von Gallileopress so beschrieben.

Aber die Verbindung des Inserts mit der Abfrage der Last Insert ID wollte ich gerne noch mal absichern.

Deshalb meine Frage:

Funktioniert das so, also werden die Daten so übertragen und landet in returnID der letzte erzeugte AutoIndex ?

Wäre echt nett, wenn mir mal jemand kurz ein Feedback geben würde, denn langsam bin ich mit meinem Latein und meinen Quellen am Ende ...

14.01.2008 - 17:44 Uhr

danke euch beiden 🙂

14.01.2008 - 17:39 Uhr

Muss ich diese Reihenfolge beibehalten, oder kann ich das OUTPUT Statement auch ans Ende setzen, also so:


INSERT INTO [BLABLA] (Varb1, Varb2) 
VALUES (@Varb1, @Varb2)
OUTPUT INSERTED.[ID]

Im Prinzip ne dumme Frage, die man mit 'Propier es doch einfach aus' beantworten könnte, aber genau das ist das Problem: Ich habe KEINE MS SQL Datenbank ...

14.01.2008 - 15:00 Uhr

verwendetes Datenbanksystem: MS SQL

Hallo 🙂

Ich stehe gleich vor zwei Problemen:

  1. Im C# Kompendium steht auf 1200 Seiten nicht ein einziger Satz zur Anbindung einer Datenbank, 2. habe ich selber keinen MSQL Server installiert ...

Ich muss also trocken coden, und das Programm dann anschließend an die nutzende Abteilung weiterschicken. Nicht schön, aber was soll ich machen, bin halt nur ein kleiner Coder, der nichts zu sagen hat ...

Ich habe folgenden Code (Ausschnitt):


// Database Connection
String connectionString = " ... " // ToDo: Insert Connection String
SqlConnection con = new SqlConnection(connectionString);
con.Open();

left.Add("PackID");
left.Add("EntryDate");
left.Add("ReleaseID"); 
left.Add("ChangeID");
left.Add("PackageID");
left.Add("PackageName");
left.Add("Category");

right.Add("");
right.Add(columns[index("G")]);
right.Add(columns[index("A")]);
right.Add(columns[index("B")]);
right.Add(columns[index("C")]);
right.Add(columns[index("D")]);
right.Add(columns[index("E")]);

sql = createSQL("Packages", left, right);
SqlCommand cmd = new SqlCommand(sql, con);

con.Close(); // Closing DataBase Connection

Kurze Erklärung:
left und right sind ArrayListen, welche (left) die Spaltennamen der Datenbanktabelle, sowie die zugehörigen Werte (right) enthalten.

die Funktion createSQL habe ich selbst geschrieben und erzeugt aus den beiden übergebenen ArrayListen ein valides (ist geprüft!) SQL-Konstrukt, und zwar ein INSERT INTO ...

index() ist eine Funktion, die den Excel-Spalten-Index in das entsprechende C# ArrayIndex umrechnet, so dass man mit den Excel-Koordinaten weiter arbeiten kann.

Nun meine Frage:

Die INSERT Anweisung erzeugt einen automatischen Index (autoincrement) für 'PackID', welches der Primärschlüssel ist.

Wie kann ich diesen ermitteln ?
Ich suche quasi das Analogon zur PHP-Funktion msql_insert_id().

Desweiteren wäre ich über ein Feedback dankbar, ob die Datenbankanbindung (ConnectionString müssen die weiteren Nutzer selbst eintragen) so richtig ist, denn ich habe mir das Stück für Stück aus dem Netz zusammen gepflückt.

Sollte diese Frage hier schon mal gestellt worden sein, so bitte ich das zu entschuldigen, ich wusste aber leider nicht, unter welchen Begriff ich suchen sollte.

09.01.2008 - 14:47 Uhr

Hmm, und wie bekomme ich das da rein ?

Das Ziel ist ja, dass CSV-Datensätze eingelesen werden, welche aus einer Excel-Tabelle erstellt werden.

Und da funzt es auch nicht, das Beispiel hier war ja nur ein Dummy-Beispiel.

09.01.2008 - 14:36 Uhr

Hallo, ich bin Anfänger in C#, nicht aber im Programmieren allgemein.

Folgender Datei soll ausgelesen werden:


Dies ist die erste Zeile
Dies die Zweite
Und hier ist eine Dritte ...
Dies ist eine Vierte
Und hier sogar noch eine Fünfte.

hier zu verwende ich folgendes C# script:


String inputFile = "F:\\test.txt";
String line;
StreamReader sr = new StreamReader(inputFile);

while ((line = sr.ReadLine()) != null)
{
    Console.WriteLine(line);
    Console.Read();
}

sr.Close();
Console.Read();

Als Ausgabe erhalte ich nun aber:


Dies ist die erste Zeile

Dies die Zweite
Und hier ist eine Dritte ...

Dies ist eine Vierte
Und hier sogar noch eine Fünfte.

Es funktioniert also mit der ersten Zeile, dann aber werden immer die nächsten beiden Zeilen als EINE Zeile eingelesen.

Nach allen möglichen Überlegungen, bin ich jetzt allmählich mit meinem Latein am Ende.
Ich bin mir sicher, dass die Lösung wohl ziemlich simple ist, nur was bringt mir das, wenn ich nicht drauf komme ...

Es wäre sehr nett, wenn mir hier jemand helfen könnte.

Mfg aus Paderborn
Mirco