hi liste -
ich habe ein datagrid, dass mir daten aus einer zimmer-db liest.
funzt soweit auch. habe auch die editier-funktion implementiert. und hier
hakt es ein wenig.
erstes problem:
die felder in der db sind alle char (gr��e 200 bzw. 10).
wenn ich die werte der felder in eine textbox schreibe und die werte dann
darin editieren will, dann spinnt der cursor rum. es ist so, als w�rde der
wert aus der datenbank zusammen mit 150 blanks oder so im textfeld stehen.
ich muss dann erst alle "leerzeichen" makieren und l�schen, um direkt hinter
den text zu schreiben.
zweites problem:
die update funktion. sie ruft einfach eine stored procedure auf, die das
ganze updaten soll. allerdings schreibt er mir immer nur den ersten
charakter in die datenbank, statt den ganzen text. hier mal der code (habe
varchar auch schon durch char ersetzt, hat aber nicht geholfen):
*** stored procedure ***
CREATE PROCEDURE updateZimmer
@ID int, @name_de varchar, @name_de_kurz varchar, @name_en varchar,
@name_en_kurz varchar,
@Preis money
AS
UPDATE Zimmer
SET [EMAIL PROTECTED], [EMAIL PROTECTED],
[EMAIL PROTECTED], [EMAIL PROTECTED],
[EMAIL PROTECTED]
WHERE [EMAIL PROTECTED]
GO
*** update funktionen ***
'F�hrt die �nderungen des Editors im Datagrid durch
Sub DoItemUpdate(objSource As Object, objArgs As DataGridCommandEventArgs)
Dim ID, Name_de, Name_de_kurz, Name_en, Name_en_kurz, Preis As
String
ID = CStr(Zimmer.DataKeys(objArgs.Item.ItemIndex))
Name_de = CType(objArgs.Item.FindControl("name_de"), TextBox).Text
Name_de_kurz = CType(objArgs.Item.FindControl("name_de_kurz"),
TextBox).Text
Name_en = CType(objArgs.Item.FindControl("name_en"), TextBox).Text
Name_en_kurz = CType(objArgs.Item.FindControl("name_en_kurz"),
TextBox).Text
Preis = CType(objArgs.Item.FindControl("preis"), TextBox).Text
'Eingabe wird �berpr�ft und im Falle einer falschen Eingabe werden
die
'Werte einfach auf 0 gesetzt
Dim testFloat,testInt As System.Text.RegularExpressions.Regex
Dim strPatternFloat, strPatternInt As String
strPatternFloat = "^\d+,\d{2}\z"
strPatternInt = "^\d+\z"
testFloat = new
System.Text.RegularExpressions.Regex(strPatternFloat,System.Text.RegularExpr
essions.RegexOptions.ExplicitCapture)
testInt = new
System.Text.RegularExpressions.Regex(strPatternInt,System.Text.RegularExpres
sions.RegexOptions.ExplicitCapture)
If(NOT (testFloat.IsMatch(Preis) OR testInt.IsMatch(Preis))) Then
Preis = "0"
End If
If(Name_de = "")Then
Name_de = "-"
End If
If(Name_de_kurz = "")Then
Name_de_kurz = "-"
End If
If(Name_en = "")Then
Name_en = "-"
End If
If(Name_en_kurz = "")Then
Name_en_kurz = "-"
End If
Test.Text = ID & " " & Name_de & " " & Name_de_kurz & " " & Name_en
& " " & Name_en_kurz & " " & Preis
'Aufrufen der Update Methode
updateZimmer(ID,Name_de,Name_de_kurz,Name_en,Name_en_kurz,Preis)
'Editor-Modus zur�ck setzen
Zimmer.EditItemIndex = -1
System.Threading.Thread.Sleep (500)
Datenlesen()
End Sub
'Update Funktion
Sub updateZimmer(ID As String, Name_de As String, Name_de_kurz As String,
Name_en As String, Name_en_kurz As String, Preis As String)
Dim strSqlConnect As String
Dim strProcedure As String
Dim MyParam As SqlParameter
strSqlConnect = ConnectStrings.SqlConnectionString
strProcedure = "updateZimmer"
Dim objConnect As New SqlConnection(strSqlConnect)
Dim objCommand As New SqlCommand(strProcedure,objConnect)
objCommand.CommandType = CommandType.StoredProcedure
MyParam = objCommand.Parameters.Add("@ID", SqlDbType.int)
MyParam.Value = ID
MyParam = objCommand.Parameters.Add("@Name_de", SqlDbType.VarChar)
MyParam.Value = Name_de
MyParam = objCommand.Parameters.Add("@Name_de_kurz",
SqlDbType.VarChar)
MyParam.Value = Name_de_kurz
MyParam = objCommand.Parameters.Add("@Name_en", SqlDbType.VarChar)
MyParam.Value = Name_en
MyParam = objCommand.Parameters.Add("@Name_en_kurz",
SqlDbType.VarChar)
MyParam.Value = Name_en_kurz
MyParam = objCommand.Parameters.Add("@Preis", SqlDbType.money)
MyParam.Value = Preis
objConnect.Open()
objCommand.ExecuteNonQuery()
objConnect.Close()
End Sub
_______________________________________________
Asp.net mailing list
[EMAIL PROTECTED]
http://www.glengamoi.com/mailman/listinfo/asp.net