Laden...
Avatar #avatar-1957.jpg
han myCSharp.de - Member
Fachinformatiker Anwendungsentwicklung Duisburg Dabei seit 06.07.2006 43 Beiträge
Benutzerbeschreibung

Forenbeiträge von han Ingesamt 43 Beiträge

12.10.2006 - 09:14 Uhr

danke 🙂

12.10.2006 - 08:20 Uhr

Hallo,

folgendes Problem:
Ich habe eine Suchfunktion auf einer *.aspx Seite eingebaut.
Also ein Textfeld und einen Button. Zur Zeit muss man aber auf den Button klicken, wenn man will dass er anfängt nach dem Wort zu suchen, was irgendwie blöd ist, da man aus Reflex ja normalerweise Enter drückt.
Kann ich es irgendwie machen, dass wenn man noch den Focus auf das Textfeld hat per Enter den Button ansprechen kann? Er ist ja "umrahmt" wenn ich in dem Textfeld bin, der "Reset" Button daneben ist es nicht.. Der Button hat auch den TabIndex, der auf das Textfeld folgt, wenn ich also Tab und dann Enter drücke gehts. Ohne Tab hat der zwar glaub ich einen PostBack aber der Button reagiert halt nicht.

Kann mir da jemand helfen?

10.10.2006 - 07:42 Uhr

Ah, jo danke, habs gefunden 🙂
Bin noch nich ganz wach, brauch noch meinen 2. Kaffee 😁

10.10.2006 - 07:34 Uhr

Hallo,

ich habe folgendes Problem:
Ich habe ein Datum, welches ich aus einer Datenbanktabelle auslese.
Nun möchte ich überprüfen, wie alt das Datum ist, d.h. wieviele Tage unterschied zum heutigen Datum bestehen.
Wie kann ich das machen? Wenn ich DateTime.Now.Substract(Datenbankdatum); mache, bekomme ich ja nur ein TimeSpan, da werd ich aber nicht ganz schlau draus. x = {82.16:46:07.8970976}
Wie rechne ich das jetzt in Tage um? Also Stunden und Minuten und so, sind eigentlich egal, wichtig sind nur die Tage.
Kann mir da bitte jemand helfen?

31.07.2006 - 11:44 Uhr

sorry, hab ich verplant

hab noch einen gefunden der auch ziemlich gute kritiken bekommen hat

www.ecs-webhosting.de

denk mal den werd ich mir holen, da ich den günstigen studenten tarif kriegen kann, jetzt wo ich nebenbei studiere g
der dürfte meinen anforderungen auch genügen.

ahjo und danke.
thema kann geschlossen werden

31.07.2006 - 11:04 Uhr

Hi,

hoffe mal der Beitrag ist hier richtig, wusste nicht wo ichs sonst reinschreiben soll. Fand bei Entwicklung passts nich so 😮

Also ich suche nen guten Webspace Anbieter, sollte zuverlässig und günstig sein.
Ich brauche einen mit ASP.NET unterstützung (was das "günstig" natürlich was schwieriger macht 😉 ) und MySQL Datenbank.

Habe hier schon 3 Stück gefunden, aber weiß nicht wie gut die sind und will nicht einfach blind einen aussuchen.

http://www.abnetz.de/
http://www.isp-star.at/
http://www.prowebma.de/hosting/endkunden/index.asp

Kennt die jemand oder kann mir jemand einen anderen Anbieter empfehlen?

Schon mal Danke im Vorraus.

greetz

han

28.07.2006 - 08:33 Uhr

keiner ne Idee ❔/
ich weiß nicht wie ich's anders machen soll.
Hilfe 🙁

Ok, hab jez noch was anderes gefunden.

ds.Tables[0].Rows[i][5] = bla;

funktioniert... warum auch immer das Andere nicht geht.
Naja..

Greetz

han

27.07.2006 - 15:39 Uhr

Der füllt mir n Feld in meinem DataSet nicht und ich weiß nicht wieso...


            con.Open();

            OleDbDataAdapter daSelect = new OleDbDataAdapter("SELECT * FROM kObjekteRelation WHERE obj1 = " + id + " OR obj2 = " + id, con);
            daSelect.Fill(ds, "daSelect");

            DataColumn dc = new DataColumn("Objekt");
            dc.Caption = "Objekt";
            dc.DataType = System.Type.GetType("System.String");
            ds.Tables[0].Columns.Add(dc);
            
            int anzDatensaetze = ds.Tables[0].Rows.Count;

            for (int i = 0; i < anzDatensaetze; i++)
            {
                int obj2 = 0;

                if (Int32.Parse(ds.Tables[0].Rows[i].ItemArray[1].ToString()) == id)
                {
                    obj2 = Int32.Parse(ds.Tables[0].Rows[i].ItemArray[2].ToString());
                    
                }
                else
                    obj2 = Int32.Parse(ds.Tables[0].Rows[i].ItemArray[1].ToString());

                OleDbCommand bezSelect = new OleDbCommand("SELECT Bezeichnung FROM kObjekte WHERE ID = " + obj2, con);

                OleDbDataReader bezReader = bezSelect.ExecuteReader();
                while (bezReader.Read())
                {
                    object bla = (object) bezReader["Bezeichnung"];
                    ds.Tables[0].Rows[i].ItemArray.SetValue(bla, 5);        // SOLL DEN WERT SETZEN MACHT ER ABER NICHT!!!!!
                }
                bezReader.Close();
                
            }

            ds.Tables[0].Columns.Remove("obj1");
            ds.Tables[0].Columns.Remove("obj2");

            dv = new DataView(ds.Tables[0]);

            con.Close();

            FillListe();   // fügt meinem DataGrid noch ne Spalte hinzu und füllt das Grid dann mit dv.

Funktioniert alles einwandfrei, das DataGrid is gefüllt, bis auf die Spalte "Objekt", also die mit dem Index 5.

Vielleicht findet ja einer von euch den Fehler, ich find da nix, eigentlich müsste es doch gehen oder?
Also in der Datenbank steht in den Feldern "Bezeichnung auch was drin, der holt da schon was raus.
In der object Variable "bla" steht das richtige drin.

24.07.2006 - 12:21 Uhr

brauch doch noch mal kurz Hilfe.
habs jetzt per JavaScript versucht, klappt aber noch nicht ganz.

Hier der Quellcode:


<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Unbenannte Seite</title>
    <script type='text/javascript'>
            function uebergabe(suche)
            {
                parent.Navigation.location.href = "Objektnavigation.aspx?search=" + suche;
            }
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div style="position: absolute; left: 0px; top: 0px; height: 95px">
        <br />
        <asp:Label ID="lblSuche" Text="Suche:" runat="server" Width="59px"></asp:Label>
        <asp:TextBox ID="tbSuche" runat="server"></asp:TextBox>&nbsp;
        <asp:Button ID="btnSuche" runat="server" Text="Suchen" OnClientClick="uebergabe(tbSuche.Text)" />
    </div>
    </form>
</body>
</html>

So wenn ic hden Button jetzt drücke, ruft er zwar die richtige Seite im richtigen Frame auf, aber ohne Parameterübergabe, also der übergibt nur "undefined".
Kann ich nicht auf die TextBox zugreifen?
Habs auch mal einfach versucht indem ich "uebergabe(this.ID)" ausprobiert hab, aber das geht auch nicht und der Button müsste ja schon auf seine eigenen Elemente zugreifen können.
Das Problem liegt also wohl in dem Script oder in der Übergabe des Parameters an das Script.
Oder?

24.07.2006 - 09:23 Uhr

jo... hm... naja, dann werd ichs wohl doch per JavaScript machen müssen

danke

24.07.2006 - 09:17 Uhr

hm verdammt
mein Chef verdreht schon immer die Augen wenn ich da irgendwo JavaScript Code einbau.
Den Nodes in ner TreeView kann ich doch auch n TargetFrame zuweisen, gibts denn sonst nichts was das noch kann? LinkButton oder so?

24.07.2006 - 09:11 Uhr

Guten Morgen,

habe auf einer Seite ein TextFeld zur Sucheingabe und einen Button.
Beim Klick auf den Button möchte ich, dass in einem anderen Frame eine Seite aufgerufen wird mit dem Inhalt des Textfeldes als Übergabeparameter.
Ich mache das mit Page.Response.Redirect
Die Seite ruft er ja auf, nur kann ich den Frame nicht festlegen.
Wenn ich der Page.Response.RedirectLocation den Namen des Zielframes zuweise gehts auch nicht. Ist glaub ich auch irgendwie nicht dafür gedacht.
Kann ich irgendwie den Zielframe bestimmen oder muss ichs ganz anders machen?

21.07.2006 - 09:56 Uhr

ah, habs hinbekommen

wen es interessiert:


        String csname2 = "ButtonClickScript";
        Type cstype = this.GetType();

        ClientScriptManager cs = Page.ClientScript;

        if (!cs.IsStartupScriptRegistered(cstype, csname2))
        {
            StringBuilder cstext2 = new StringBuilder();
            cstext2.Append("<script type='text/javascript'>");
            cstext2.Append("window.close();</script>");
            cs.RegisterStartupScript(cstype, csname2, cstext2.ToString(), false);
        }

21.07.2006 - 09:35 Uhr

hm, schon mal danke

der sagt mir diese RegisterStartupScript wäre veraltet und ich sollte die ClientScript.RegisterStartupScript nehmen
ich muss der aber 3 parameter übergeben
nen type und 2 strings (key und script)
was muss ich denn da genau übergeben?
habs nu so:


        System.Type java = this.GetType();
        string key = "fensterSchliessen";
        StringBuilder text = new StringBuilder();
        text.Append("<script type='text/javascript'>");
        text.Append("function FensterSchliessen () {");
        text.Append("window.close();}</script>");
        ClientScript.RegisterStartupScript(java, key, text.ToString(), true);

führt der denn das script überhaupt aus, also wenn ichs nur registriere.. muss ichs nicht auch noch irgendwie aufrufen?

21.07.2006 - 08:59 Uhr

Hallo,

Ich habe in meiner Webanwendung eine Form erstellt, die als PopUp Fenster geöffnet wird.
Man soll dort etwas eingeben und dann auf den "speichern" Button klicken.
Nachdem der Button "speichern" dann die eingegebenen Daten gespeichert hat, möchte ich, dass er das Fenster schließt. Wie mach ich das? Habe keinen Close Befehl oder sowas in this. oder this.Page oder so gefunden.
Bzw nur einen in this.Page.Response.Close() aber das funktioniert nicht.
Gibts da n Befehl oder geht das überhaupt nicht?

18.07.2006 - 10:35 Uhr

Ja richtig bei !IsPostBack
D.h. das Ganze wird nur aufgerufen wenns KEIN Postback ist.
Also beim ersten Laden der Seite und genau dann kommt ja auch die Exception, aber wie gesagt nur ab und an mal wenn se Lust hat.
Wenns n Postback ist, geht der da ja gar nicht erst rein und ruft den Befehl auch nicht auf.
Wirklich Sinn macht die Exception an dieser Stelle für mich aber nicht, von wegen Out of Range...

18.07.2006 - 08:26 Uhr

Keiner n Plan?
Mich verwirrt so sehr, dass der Fehler immer nur ab und an mal kommt und so unregelmäßig, macht irgendwie keinen Sinn.

17.07.2006 - 11:49 Uhr

Hallo,

mir wird in meiner Webanwendung beim Starten in unregelmäßigen Abständen eine Exception geworfen und ich weiß nicht wieso.

Hier mal der Quellcode:


    #region Variablendeklaration

    private static TreeNode KindTypen = new TreeNode("unterTyp");
    private static TreeNode KindObjekte = new TreeNode("unterObjekt");
    private static TreeNodeCollection unterTypen = new TreeNodeCollection(); 
    private static TreeNodeCollection unterObjekte = new TreeNodeCollection(KindTypen);

    #endregion

protected void Page_Load(object sender, EventArgs e)
    {
        OleDbConnection con = new OleDbConnection
                    (ConfigurationManager.ConnectionStrings
                    ["Logbuch2ConnectionString"].ConnectionString);

        if (!IsPostBack)
        {
            KindTypen.ChildNodes.Add(KindObjekte);

            // Select Command liest alle Typen aus der Tabelle
            OleDbCommand cmd = new OleDbCommand("select typ from kObjekteType", con);

            con.Open();         // Verbindung zur Datenbank öffnen

            DbDataReader dr = cmd.ExecuteReader();

            while (dr.Read())
            {
                // ObjektTypen werden zur TreeView als Node hinzugefügt
                KindTypen = new TreeNode(dr["typ"].ToString());
                unterTypen.Add(KindTypen);

                TreeView1.Nodes.Add(KindTypen);

            }
            dr.Close();

            con.Close();        // Verbindung zur Datenbank schließen
        }

    }

Es kommt dann ab und an beim Starten dieser Fehler an der Stelle
"KindTypen.ChildNodes.Add(KindObjekte);":

ArgumentOutOfRangeException
Der Index muss sich innerhalb der Listenbegrenzung befinden
Parametername: Index

Weiß jemand woran das liegt und wie ich das verbessern kann?

13.07.2006 - 11:35 Uhr

Hm, ginge natürlich auch, allerdings hab ich damit noch nicht gearbeitet mit den Sessions.
Und im Prinzip brauch ich die Variablen nach dem Auslesen auf der Zielseite ja nicht mehr, also die ausgelesenen schon, aber halt danach.
Ist doch dafür ein bisschen zu aufwendig oder?
Kann man denn nicht mehrere Parameter übergeben?

ah, mit & gehts ^^

13.07.2006 - 11:28 Uhr

Hm, übergeben kann ich die ID jetzt. Hab sie einfach in ne Variable gelesen und drangehangen.

Das Problem ist das auslesen über Request auf der Zielseite.
Kann ich mehrere Parameter nicht mit *.aspx?parameter1=x?parameter2=x usw. anhängen?
Wie trenne ich die, wenn nicht mit nem "?" ?

13.07.2006 - 11:21 Uhr

Ist schwer zu erklären, aber ich machs trotzdem 🙂

Also, ich habe ein DataGrid in das ich eine Tabelle lade in der eine ID und noch 2 IDs von Objekten stehen.
Ich füge jetzt eine weitere Spalte dem DataGrid hinzu welche nochmals die ID beinhaltet. In der Spalte wird ein Link erstellt mit dem ich eine andere Seite aufrufe, mit dem Parameter ID.
Ich möchte jetzt noch einen weiteren Parameter übergeben und zwar die ID von dem 1. Objekt, welche ja aber in einer anderen Spalte steht.
Geht das irgendwie?

Hier mal die Spaltenerstellung:


System.Web.UI.WebControls.BoundColumn rMod1;
        rMod1 = new System.Web.UI.WebControls.BoundColumn();
        rMod1.ItemStyle.Width = 18;
        rMod1.HeaderText = "";
        rMod1.DataField = "id";
        rMod1.DataFormatString = "<a href=BeziehungenBearbeiten.aspx?bezid={0}?ObjID={1}><img src=img/ico_mod.gif border=0 width=16></a>";
        rMod1.ItemStyle.VerticalAlign = VerticalAlign.Top;
        dgBeziehungen.Columns.Add(rMod1);

        dgBeziehungen.DataSource = dv;
        dgBeziehungen.DataBind();

Dachte vielleicht dass die ID an stellt 0 steht und die Obj1ID an Stelle 1 aber das geht schonmal nicht. Es kommt ne Fehlermeldung:
"Der Index, basierend auf 0 (null), muss größer als oder gleich Null sein, und kleiner als die Größe der Argumentenliste."

Kann jemand helfen bitte?

12.07.2006 - 14:24 Uhr

ahjo selecteditem.text
dachte gibt nur selectedindex g

danke

12.07.2006 - 14:16 Uhr

Sorry, war noch im Daten Forum weil ich das ja mit Daten aus ner Datenbank fülle.

Hm, der gibt mir ja nur den Index zurück von dem was ich anklicke.
Aber ich brauch eigentlich das Wort was da steht ^^
Krieg ich das irgendwie über den Index abgerufen oder muss ich mir das beim laden der ListBox irgendwie in nen string Array speichern?

12.07.2006 - 14:06 Uhr

ah, geht, juhu 🙂

danke an euch beide 🙂

12.07.2006 - 13:53 Uhr

Hi,

Ich hab in meiner Webform zwei Listboxen, die erste füllt er beim laden der Seite und ich gebe den selectedIndex vor auf -1, damit nichts ausgewählt ist.
In der Prozedur SelectedIndexChanged von der ListBox lasse ich dann die zweite ListBox füllen sobald ein Wert aus der 1. Listbox ausgewählt wurde.
Leider funktioniert das nicht, da er gar nicht erst in die Prozedur reingeht, egal welchen Index ich jetzt in der ersten ListBox anklicke.

Woran kann das liegen? Habe ich irgendetwas übersehen?

11.07.2006 - 11:36 Uhr

Jo, wie ich das jez irgendwie fülle hab ich au schon rausgefunden, nur wenn ich dann auf was draufklicke hängt der dann das andere Zeug unten dran anstatt so Explorermäßig das dazwischen zu packen, aber naja.
Hab mir jetzt n USB DVD Laufwerk besorgt und installier erstmal die Doku.
Tut mir leid wenn ich so dreist war.

11.07.2006 - 10:38 Uhr

also TreeView1 is mein TreeView auf der *.aspx
Also auf der Visuellen Oberfläche, Webseite, Formular oder wie man das auch immer nennen mag.
Kann die Doku auch nit nachinstallieren da die wohl auf ner DVD ist und ich hab nur n CD Laufwerk hier im laptop 😠

Was passieren soll weiß ich, nur wie ichs umsetze nich g

Also, will halt die Typen aus der Datenbank lesen, mit dem DataReader, kein Problem. Dann will ich die in die TreeView packen... in ner WinForm gehts mit TreeNode.Nodes.Add(); aber in der Webanwendung irgendwie nicht.
Da kennt das TreeNode gar kein Nodes
Kann auch irgendwie nur Nodes in das TreeView packen, aber ich weiß nicht wie ich son TreeNode fülle... den String aus dem DataReader krieg ich da nicht rein.

11.07.2006 - 08:41 Uhr

Klar sagen die Fehlermeldungen mir was falsch ist.
Ich weiß ja jetzt auch was falsch ist, aber ich möchte ja wissen wie es richtig geht.
Die Doku funktioniert irgendwie nich richtig, glaub die ist nicht installiert.
Da kommt immer sowas wie:
Sie haben festgelegt, dass nur die lokale Hilfe für die Suche über die Option Suchen und über F1 verwendet werden soll. Dort wurde das Thema jedoch nicht gefunden.
schon beim Aufrufen der Hilfe und bei der Online Hilfe kann der irgendwie keine Verbindung herstellen. Hab die Installations-CDs auch grad nicht hier.

11.07.2006 - 08:12 Uhr

Kann mir denn da keiner helfen?
Steh voll aufm Schlauch 🙁

10.07.2006 - 15:29 Uhr

Joa gut, bringt mich aber jetzt nicht wirklich weiter g
Also so wie ichs geschrieben hab gehts in ner WindowsForm.
In ner Webanwendung muss man das wohl irgendwie anders machen, aber ich hab keine Ahnung wie 😠
Arbeite noch nicht so lange mit C#
Also wenn ich dem nur ne Node zuweisen kann muss ich ja irgendwie den Inhalt aus dem DataReader in ne Node umwandeln oder reinpacken können oder nicht?

10.07.2006 - 15:14 Uhr

Ich möchte eine TreeView in meiner Webanwendung füllen, leider geht das nicht genauso wie in einer WinForm.


OleDbConnection con = new OleDbConnection
                (ConfigurationManager.ConnectionStrings
                ["Logbuch2ConnectionString"].ConnectionString);

               OleDbCommand cmd = new OleDbCommand("select typ from kObjekteType", con);
        
        con.Open();

        DbDataReader dr = cmd.ExecuteReader();
        TreeView tv = new TreeView();
        TreeNode n = TreeView1.Nodes.Add("Typen"); 
        // unterstreicht mir TreeView1 und "Typen" mit den Fehlermeldungen 1 und 2 
        while (dr.Read())
        {
            n.Nodes.Add(dr["typ"].ToString());
            // unterstreicht mir Nodes mit der Fehlermeldung 3
        }
        dr.Close();

        con.Close();

Fehlermeldungen:
Fehler 1 Die beste Übereinstimmung für die überladene Methode System.Web.UI.WebControls.TreeNodeCollection.Add(System.Web.UI.WebControls.TreeNode) hat einige ungültige Argumente. c:\Dokumente und Einstellungen\xfqud9\Eigene Dateien\Visual Studio 2005\WebSites\WebSite3\Objektnavigation.aspx.cs 29 22 c:...\WebSite3\

Fehler 2 Das Argument 1 kann nicht von string in System.Web.UI.WebControls.TreeNode konvertiert werden. c:\Dokumente und Einstellungen\xfqud9\Eigene Dateien\Visual Studio 2005\WebSites\WebSite3\Objektnavigation.aspx.cs 29 42 c:...\WebSite3\

Fehler 3 System.Web.UI.WebControls.TreeNode enthält keine Definition für Nodes. c:\Dokumente und Einstellungen\xfqud9\Eigene Dateien\Visual Studio 2005\WebSites\WebSite3\Objektnavigation.aspx.cs 32 15 c:...\WebSite3\

Was will der mir jetzt sagen? ^^

10.07.2006 - 11:46 Uhr

kann man sich eigentlich denken 🙂

Han Solo is einfach der coolste aus Star Wars g

10.07.2006 - 11:29 Uhr

Funktioniert 🙂

Vielen Dank

10.07.2006 - 11:23 Uhr

Hey,
ich habe ein Problem.
Ich habe in meiner Webanwendung ein DataGrid, welches ich mit Informationen aus einem DataView fülle. Die Datenbankabfrage hat einen Filter, der mit einem Druck auf einen Button ausgestellt werden soll, ich mache also eine neue Abfrage und fülle das DataGrid erneut, mein DataView scheint aber noch voll zu sein, er hängt die neuen Daten nur hinten dran. Wie kann ich mein DataView vorher leeren? Clear gibts nicht und mit Delete hab ichs probiert, er sagt immer "an der Position x befindet sich keine Zeile". Ist das DataView vielleicht doch leer, aber er hängts ans Ende vom DataGrid, das noch voll ist?
Wie leere ich dann das DataGrid?

06.07.2006 - 12:14 Uhr

ja welchen wert das feld in der datenbank hat ist ja egal, entscheidend ist welchen wert ich in den textboxen in meiner webanwendung habe.
null kann ich auch nicht übergeben, wenn ich den value vor dem ausführen des sql commands auf NULL setze, kommt ne exception 😮

(ich bedanke mich schonmal für die rege teilnahme an der diskussion und der hilfe, falls ich das nachher vergessen sollte 😉 )

06.07.2006 - 12:10 Uhr

ja dann muss ich halt in der update oder insert abfrage einfach weglassen dass er was ins datumsfeld einfügt, das problem ist dann ja halt, da ich 5 datumsfelder habe, ich viele verschiedene inserts vorher deklarieren muss und dann gucken in welchen datumsfeldern ich jetzt was drinstehen hab, das is aber irgendwie doof ^^

also wenn ich in access in nem datum/zeit feld nichts stehen hab, hat er trotzdem n datum und ne zeit da drin stehen, zeigt sie nur nicht an oder wie kann ich das verstehen?

06.07.2006 - 12:03 Uhr

versteh doch, ob ich den Value ersma auf "" setze und danach den Value nochmal zuweise oder direkt den Value bei AddWithValue zuweise ist egal!
das eine sind 2 befehle das andere ist einer, das ist der unterschied.
ich machs ja mit allen anderen variablen auch, bzw den anderen feldern in der access tabelle. es geht ja auch alles, mit dem datum jetzt auch, nur dass ich ja immer 01.01.0001 übergebe, was aber ja bei 5 datumsfelder in der tabelle natürlich speicherplatz brauch wenns viele datensätze werden.
deswegen will ich dass wenn das datum 01.01.0001 übergeben würde der nichts übergibt damit das feld in access leer bleibt

06.07.2006 - 11:52 Uhr

Ja gut, aber ich kann in Access ja ein Datum/Zeit Feld einfach leer lassen.
Und das will ich ja, ich will dass bevor der das Datum übergibt guckt, obs "01.01.0001" ist und dann hingeht und null übergibt oder einfach leer oder so, aber das geht ja nicht >_<
und wenn ich sag der soll den Parameter gar nicht übergeben muss ich ja, da ich 5 versch. Datumsfelder hab in denen ja was drin stehen KÖNNTE mehrere verschiedene insert Commands machen in denen der dann 0-5 datumsfelder übergibt, das is ja doof 😠

06.07.2006 - 11:23 Uhr

ja ob ich jez
insert.Parameters.AddWithValue("Datum1", DateTime.Parse(Datum[0]));
oder
insert.Parameters.AddWithValue("Datum1", "");
insert.Parameters["Datum1"].Value = Datum[0];
mache is ja wurst egal, meine variante nimmt halt nur mehr platz weg.
das ist ja auch nicht das problem, ich kanns ja jetzt übergeben mit ner DateTime Varialbe von der ich dann ShortDate übergebe, aber ich will ja nicht wenn ich nichts in das Datumsfeld schreiben will 01.01.0001 übergeben, das nimmt ja dann irgendwann viel zu viel platz in der Access Datenbank weg, ich will dann ja schon dass das Feld dann einfach leer bleibt.
Nur wie übergeb ich dann leer? mit "" gehts ja nicht, kann ich null übergeben oder meckert der dann auch?

06.07.2006 - 10:58 Uhr

hm, habs jetzt hinbekommen dass keine fehlermeldung kommt, allerdings hab ich dann anstatt nichts 01.0.1.0001 in den datumsfeldern stehen

habs mit DateTime gemacht, überall new DateTime(0); gemacht, womit ich ja das datum auf 01.0.1.0001 stelle, da fängt der ja erst an.

an access übergeben hab ich dann die variabledatetime.ToShortDate();

ne andere Möglichkeit hab ich bis jetzt nicht gefunden, wär aber schöner wenn ich einfach nichts übergeben könnte wenn auch nichts in dem textfeld drin steht, bzw lese ich ja jetzt nicht aus dem textfeld aus sondern weise ja nur im quelltext die 0 zu.

aber das typenproblem habe ich jetzt gelöst, muss jetzt nur das Datum aus der TextBox in ne DateTime variable bekommen.

06.07.2006 - 10:15 Uhr

Also in der Access Tabelle ist der Datentyp halt Datum/Uhrzeit.

In meiner Webanwendung habe ich TextBoxen die ich standardmäßig mal auf den Text 00.00.0000 gestellt habe.

Ich lese jetzt diese Textboxen aus in nen String Array
(mit nem DateTime Array gings ja nicht, der wollte den String ja nicht umwandeln)

also quellcodeauszug wäre dann der:


OleDbConnection con = new OleDbConnection
                (ConfigurationManager.ConnectionStrings
                ["Logbuch2ConnectionString"].ConnectionString);

        OleDbCommand insert = new OleDbCommand("insert into kObjekte (Datum1, Datum2, Datum3, Datum4, Datum5) values (?,?,?,?,?)", con);

        insert.Parameters.AddWithValue("Datum1", "");
        insert.Parameters.AddWithValue("Datum2", "");
        insert.Parameters.AddWithValue("Datum3", "");
        insert.Parameters.AddWithValue("Datum4", "");
        insert.Parameters.AddWithValue("Datum5", "");

con.Open();

        OleDbTransaction tx = con.BeginTransaction();
        insert.Transaction = tx;

        try
        {
            insert.Parameters["Datum1"].Value = Datum[0];  // String Inhalt "#00.00.0000#" bzw. "00.00.0000"
            insert.Parameters["Datum2"].Value = Datum[1];
            insert.Parameters["Datum3"].Value = Datum[2];
            insert.Parameters["Datum4"].Value = Datum[3];
            insert.Parameters["Datum5"].Value = Datum[4];
            insert.ExecuteNonQuery();   // Problem bei Übergabe mit Datum... schmeißt Exception

            tx.Commit();
        }
        catch (Exception ex)
        {
            tx.Rollback();
            throw new Exception(ex.ToString());
        }

        con.Close();

hab jetzt die anderen variablen entfernt, die funktionieren ja

06.07.2006 - 10:03 Uhr

hm, also "#00.00.0000#" in nen string und dann den string nach access?!
das funktioniert nämlich auch irgendwie nicht 😠

kommt immer datentyp in kriterienausdruck unverträglich

06.07.2006 - 09:44 Uhr

Ok, wusste nicht genau wo ich das jetzt reinschreiben soll, wollte erst in Web- und Netzwerktechnologien weil ich ne Webanwendung erstelle, aber naja, glaub hier passts besser

Also, mein Problem:
Ich habe Werte die ich in eine Webanwendung eingebe und dann per SQL Befehl in eine Access Datenbank schreibe. Funktioniert auch alles einwandfrei bis auf die Datumsfelder.
Habs erst probiert die in C# als Strings zu machen, sind auch standardmäßig nicht leer sondern 00.00.0000 bei der übergabe zu Access per SQL Insert Befehl kommt aber ein Typkonflikt.
Habe jetzt versucht DateTime zu nehmen in C# allerdings kann ich die nicht mit nem String der nur aus "00.00.0000" besteht füllen, weil er ja auch die Zeit haben will.
Über <datetimevariable>.Date = DateTime.Parse("00.00.0000");
gehts auch nicht, Da kann ich irgendwie nicht reinschreiben, außerdem weiß ich nicht ob der dann nicht bei der Übergabe wieder Probleme hat, wobei ich vorhatte dann von der Variablen nur .Date zu übergeben, aber so weit komm ich ja gar nicht 🙁
Hat jemand Rat?