| 

.NET C# Java Javascript Exception

1
Hallo Codekickers,

ich komme hier leider nicht weiter und hoffe das Ihr mir weiter helfen könnt.

Ich habe schon einige Beiträge in anderen Foren dazu gelesen leider sind die so zerstückelt das ich als Anfänger nicht klar komme.

Also ich habe ein Formular welches als Insert fungiert

per Codebehind frage ich ab, zu welchem Kunden der Insert User gehört, die ich mit der funktion GetKundenGuid() abrufe. "Auch als String kommt der gleiche Fehler"

im Moment, bekomme ich zb. diesen Fehler

Fehler beim Festlegen der Eigenschaft 'KD_ID': 'Der Wert des Parameters 'KD_ID' kann nicht in den Typ 'System.Guid' konvertiert werden.'.

ich habe mal meine Tests drinnen gelassen.

Schönen Dank im Vorraus

Olaf
public Guid GetKundenGuid()
{
Guid g = new Guid(strKundenGuid);
return g;
}

<asp:EntityDataSource 
ID="EntityDataSource1" runat="server" ConnectionString="name=rshwwhEntities"
DefaultContainerName="rshwwhEntities" EnableFlattening="False" EntitySetName="Kunden_SMS_FAX_Getaways"
EnableDelete="True" EnableInsert="True" EnableUpdate="True" EntityTypeFilter="Kunden_SMS_FAX_Getaways"
Where=""
>
<%--Where="KD_ID== null ? Guid.Empty : Guid(@KD_ID))" --%>
<InsertParameters>
<%--<asp:Parameter Direction="InputOutput" Name="KD_ID" DefaultValue="<% GetKundenGuid() %>" Type="Object" />--%>
<asp:Parameter Name="KD_ID" DefaultValue="<% GetKundenGuid() %>" Type="Object" />

</InsertParameters>
<WhereParameters>
<%-- <asp:Parameter Name="KD_ID" Type="Object" DefaultValue="<% strKundenGuid %>" />--%>
<asp:QueryStringParameter Name="KD_ID" QueryStringField="<% GetKundenGuid() %>" Type="Object" />

</WhereParameters>
</asp:EntityDataSource>
29.09.2012
OlafS 210 1 6
3 Antworten
1
Anderern Ansatz:
Speichere deine Guid in die Session (Page_Load)
Dann kannst du deinen asp:parameter mit einem asp:SessionParameter ersetzen.
Das Mapping funktioniert über das Property SessionField.

Oder noch besser, du verwendest eine ObjectDataSource. Damit kannst du die GUI vom Datenzugriffe trennen.
04.10.2012
phipu 287 1 8
phipu 287 1 8
Hallo sei so gut und schau Dir den Tread noch ein mal an.

Vielen Dank Olaf
OlafS 06.10.2012
0
Versuche mal mit
<asp:Parameter Name="KD_ID" DefaultValue="<%= GetKundenGuid() %>" DbType="Guid" />
01.10.2012
phipu 287 1 8
phipu 287 1 8
erst ein mal Danke das umaschalten auf DBtype währe ich nicht gekommen.

Leider bekomme ich jetzt den Fahler
GUID muss 32 Ziffern mit 4 Bindestrichen enthalten (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx).

habe kontrolliert ob meine Funktion einen Wert inne hat.
und mal nach String umgeschaltet beleibt aber immer das selbe

Olaf
OlafS 04.10.2012
0
das Thema asp:SessionParameter funktioniert gut, wird mir aber die Ohren brechen wenn ich mehrere Online User habe die dem gleichen Kunden angehören denke ich.

Das werde ich umgehen in dem ich die Classe AktivUserkunde mit entsprechenden Proerties abfrage als Objekt übergebe und das abfrage.

ObjectDataSource ist im moment ein fehlschlag bei mir kriege ich nicht hin.
Das Steuerelement newAktivUserkunde konnte in ControlParameter KD_ID nicht gefunden werden.

bei den Einträgen:
Allerdings habe ich die <asp:EntityDataSource so stehen lassen geht das überhaupt?

Sag mal bis Du FreeLanzer?

Danke im vorraus Olaf

<InsertParameters>

<asp:ControlParameter ControlID="newAktivUserkunde" Name="KD_ID" DbType="Guid" PropertyName="KD_ID" />
</InsertParameters>

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


namespace Test
{
public class AktivUserkunde : System.Web.UI.WebControls.WebControl
//: System.Web.UI.WebControls.ControlParameter
// Test als Control
{
public AktivUserkunde()
{
strUserGuid = strUserGuid;
guiUserGuid = guiUserGuid;
KD_ID = KD_ID;// ist type string
guiKundenGuid = guiKundenGuid;
strUsername = strUsername;
KundenName = KundenName;

}

private string _strUserGuid;

public string strUserGuid
{
get { return _strUserGuid; }
set
{
_strUserGuid = "b7a67278-371a-42ca-a8c0-9d9269250600";

}
}

private string _guiUserGuid;

public string guiUserGuid
{
get { return _guiUserGuid; }
set { _guiUserGuid ="b7a67278-371a-42ca-a8c0-9d9269250600";

}
}

private string _strKundenGuid;

public string KD_ID
{
get { return _strKundenGuid; }
set { _strKundenGuid = "b7a67278-371a-42ca-a8c0-9d9269250600";

}
}

private Guid _guiKundenGuid;

public Guid guiKundenGuid
{
get { return _guiKundenGuid; }
set { _guiKundenGuid =new Guid("b7a67278-371a-42ca-a8c0-9d9269250600");

}
}

private string _strUsername;

public string strUsername
{
get { return _strUsername; }
set
{
_strUsername = "Admin";

}
}

private string _KundenName;

public string KundenName
{
get { return _KundenName; }
set
{
_KundenName = "os";

}
}



}
}
06.10.2012
OlafS 210 1 6
OlafS 210 1 6
Es tut mir leid, aber da kann ich dir nicht mehr weiterhelfen. Das ganze mit der AktivUserklasse macht für mich keinen Sinn, schon gar nicht als WebControl. Du kannst so viele InsertParameter einfügen wie du willst, dafür musst du keinen Container basteln. Schau dir nochmal an wie Properties funktionierten, die hast du komplett falsch eingesetzt (value benutzen). Ich habe nicht bedacht, dass du Anfänger bist, deshalb vergiss erstmal die Objectdatasource.
Bin kein Freelancer.
phipu 08.10.2012

Stelle deine Parameter-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH