15. juli 2005 - 14:34Der er
4 kommentarer og 1 løsning
DataGrid_Update virker ikke.!
Hej eksperter Nu er jeg sq gået lidt kold på det her DataGrid. DG virker fint. Men når jeg trykker på Edit og indtaster en ny værdi i TextBoxen bliver den ikke læst og gemt i min DB. Der er mange ligende ? her på Eksperten.dk og jeg har da også værtet igennem de fleste uden held. og nu er det sikker en lille åndsvag ting jeg mangler..!!
det er nok mere noget i denne stil du skal have fat i:
OleDbComman command = new OleDbCommand(sql, dbConn); dbConn.Open(); command.ExecuteNonQuery(); dbConn.Close();
og så skal du nok lige huske at sikre denne: sql = String.Format("UPDATE install SET kunde='{0}' Where ID = {1};", newkunde, 2); så det ikke kun er den med ID=2 du gør noget ved.
Jeg er sikker på at Update sql virker.(ser måske lidt rodet ud, copy / paste ting) ID=2 er fast under test, så jeg ved hvad jeg piller ved. Min Label2 som skriver sql stengen er = UPDATE install SET kunde='' Where ID = 2 så TextBox NewValue= (TextBox)e.Item.FindControl("kunde"); viser ikke den nye indtasted værdi.??? Den burde returnere DataGrid's Eller ??? <EditItemTemplate> <asp:TextBox runat="server" ID="kunde" Text='<%# DataBinder.Eval(Container, "DataItem.kunde") %>'> </asp:TextBox> </EditItemTemplate>
det var nu ikke så meget fordi der er noget i vejen med din sql... det var mere den måde du fyrer den af på - derfor forslaget om .ExecuteNonQuery istedet. du har ikke rigtig noget at bruge en reader til i det scenarie du har vist - ej heller synes der er være nogen grund til at du arbejder med interfaces..... såhhh :
OleDbComman command = new OleDbCommand(sql, dbConn); dbConn.Open(); command.ExecuteNonQuery(); dbConn.Close();
var et mere generelt forslag koden, uden hensyntagen til din sql.
men som jeg forstår dig nu ... får du rent faktisk opdateret i databasen - du får bare ikke værdien fra tekstboksen kan jeg så forstå - eller ?!?
... databinder du hver gang du loader siden, eller har du sørget for noget i denne stil:
Execute koden er herfra og jeg indrømmer at det er noget kumme kode, (copy & paste i test er best.) dbConn = new OleDbConnection(Application["strConnect_data"].ToString()); sql = "Select * From install"; IDbCommand dbCmd1; dbCmd1 = new OleDbCommand(); dbCmd1.CommandText = sql; dbCmd1.Connection = dbConn; IDataReader dbReader1; dbConn.Open(); dbReader1 = dbCmd1.ExecuteReader(); DataGrid1.DataSource = dbReader1; DataGrid1.DataBind();
newerminde jeg holder mig fra interfaces.GG (not)
jeg havde i min postback et ! tegn for meget, damm.
du får et svar her :o) mvh (du skal bestemt ikke holde dig fra interfases.... det er bare ikke så relevant lige i dette tilfælde :o)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.