Aktualizacja rekordu w bazie - puste pole

0

Witam. Chciałabym zaktualizować rekord w bazie danych, ale po wpisaniu nowej wartości zamiast niej pojawia się puste pole.

private string connectionString = "Data Source='kasia-lenovo\\SQLEXPRESS';Initial Catalog='baza';Integrated Security=True;Pooling=False";
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                LoadKsiazki();
            }
        }
        protected void LoadKsiazki()
        {
            string commandString = "SELECT ISBN, TYTUL, PODTYTUL, IMIE_AUTORA AS 'IMIE AUTORA', NAZWISKO_AUTORA AS 'NAZWISKO AUTORA', WYDAWNICTWO, DATENAME(YEAR, ROK_WYDANIA) AS 'ROK WYDANIA', WYDANIE, MIEJSCE_WYDANIA AS 'MIEJSCE WYDANIA', ILOSC, GATUNEK from KSIAZKI";
            SqlDataAdapter dataAdapter = new SqlDataAdapter(commandString, connectionString);
            DataSet dataSet = new DataSet();
            dataAdapter.Fill(dataSet, "KSIAZKI");
            DataTable dataTable = dataSet.Tables["KSIAZKI"];
            GridViewKsiazki.DataSource = dataTable;
            GridViewKsiazki.DataBind();
        }
        protected void GridViewKsiazki_RowUpdating(object sender, GridViewUpdateEventArgs e)
        {
            SqlConnection connection = new SqlConnection(connectionString);
            string updateCmd = "UPDATE KSIAZKI SET TYTUL=@TYTUL WHERE (ISBN=@ISBN)";
            
            try
            {
                connection.Open();
                SqlCommand cmd = new SqlCommand(updateCmd,connection);
                SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM KSIAZKI", connection);
                DataSet ds = new DataSet();
                da.Fill(ds);
                DataTable dt = ds.Tables["KSIAZKI"];
                
                string isbn = GridViewKsiazki.DataKeys[e.RowIndex].Value.ToString();
                cmd.Parameters.Add(new SqlParameter("@ISBN", "ISBN")).Value=isbn;
                string tytul = GridViewKsiazki.Rows[e.RowIndex].Cells[2].Text;
                cmd.Parameters.Add(new SqlParameter("@TYTUL", tytul)).Value = tytul; 


                da.UpdateCommand = cmd;
                da.Update(ds);
                cmd.ExecuteNonQuery();
            }
            catch (SqlException ex)
            {
                ErrorMessage.Text = ex.Message;
            }
            finally
            {
                connection.Close();
            } 
            GridViewKsiazki.EditIndex = -1;
            LoadKsiazki();
        }
0

witaj
nie bardzo rozumiem treści funkcji GridViewKsiazki_RowUpdating, masz polecenia sql najpierw update potem select, a jeszcze potem w to wszystko jest zamieszana jakaś tabela, trochę zamieszałaś, poniżej linki, które winny Ci pomóc

http://www.c-sharpcorner.com/UploadFile/9f0ae2/gridview-edit-delete-and-update-in-Asp-Net/
http://aspsnippets.com/Articles/Simple-Insert-Select-Edit-Update-and-Delete-in-ASPNet-GridView-control.aspx

jeżeli GridView ma tylko wyświetlić i aktualizować Twoje dane to czy nie prościej zrobić tego w samym aspx bez codebehid?

przykład poniżej
http://www.encodedna.com/2013/01/asp.net-gridview-edit-delete.htm

0

Podziałała metoda z pierwszego linku. Na początku też robiłam coś podobnego, ale nie działało, więc najwidoczniej coś musiałam zrobić źle.

1 użytkowników online, w tym zalogowanych: 0, gości: 1