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..!!
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
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.