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