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();
}