danciwo
 Užívateľ
 Založený: 25.03.2008 Príspevky: 72
 | Zaslal: So 03.10.09 15:46 |   |
Zdravím, mám webovú aplikáciu pomocou ktorej sa vkladajú údaje do databázy a potrebujem urobit editáciu týchto údajov.
Takže stratégia by mala byt nasledujúca:
1. načítam údaje z databázy a to co získam vlozím ako hodnoty do web forms-> to budu pôvodné údaje určené pre editáciu priamov týchto forms.
to je prvá z dvoch metód -> tá funguje.
2. načítam editované údaje z web forms a vlozim ich do databázy
Problém je taký, že ked získam dáta z databázy a "namapujem" ich na tieto forms, tak akokolvek ich uz pri beziej aplikácii editujem, stále ostanú rovnaké a neprepíšu sa v databáze. Vid metodu Button1_Click.
Asi to bude problém s referenciami, tak somskusil tie údaje ziskat cez .Clone(), ale nepomohlo.
| kód: |
{
public partial class WebForm18 : System.Web.UI.Page
{
SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString2"].ConnectionString);
string update_cmd_text = "UPDATE dbo.Programs SET description = '@description', source = '@source', www = '@www', cat_id = @cat_id, lang_id = @lang_id WHERE (prog_id = @prog_id)";
string select_cmd_text = "SELECT Programs.prog_id, Programs.cat_id, Programs.lang_id, Programs.userID, Programs.description, Programs.source, Programs.www, Languages.lang_name, Categories.cat_name FROM Programs INNER JOIN Languages ON Programs.lang_id = Languages.lang_id INNER JOIN Categories ON Programs.cat_id = Categories.cat_id WHERE (Programs.prog_id = @prog_id)";
protected void Page_Load(object sender, EventArgs e)
{
SqlDataReader reader;
select_cmd_text = select_cmd_text.Replace("@prog_id", Request.QueryString["prog_id"]);
SqlCommand cmd = new SqlCommand(select_cmd_text, connection);
try
{
connection.Open();
reader = cmd.ExecuteReader();
reader.Read();
}
catch (SqlException ex)
{
StatusLabel.Text = ex.Message;
return;
}
//no exception has been throwed
DropDownList1.SelectedValue = (string)reader["lang_id"].ToString().Clone();
DropDownList2.SelectedValue = (string)reader["cat_id"].ToString().Clone();
descriptionEditor.Text = (string)reader["description"].ToString().Clone();
sourcecodeEditor.Content = (string)reader["source"].ToString().Clone();
wwwTextBox.Text = (string)reader["www"].ToString().Clone();
connection.Close();
}
protected void Button1_Click(object sender, EventArgs e)
{
//ked chcem prepísat editované údaje a vlozit do query, tak tam vlozia povode udeje a nie tie editované!!
update_cmd_text = update_cmd_text.Replace("@lang_id", DropDownList1.SelectedValue);
update_cmd_text = update_cmd_text.Replace("@cat_id", DropDownList2.SelectedValue);
update_cmd_text = update_cmd_text.Replace("@description", descriptionEditor.Text);
update_cmd_text = update_cmd_text.Replace("@source",sourcecodeEditor.Content);
update_cmd_text = update_cmd_text.Replace("@www",wwwTextBox.Text);
update_cmd_text = update_cmd_text.Replace("@prog_id", Request.QueryString["prog_id"]);
SqlCommand cmd = new SqlCommand(update_cmd_text, connection);
try
{
connection.Open();
cmd.ExecuteNonQuery();
}
catch (InvalidOperationException opex)
{
StatusLabel.Text = opex.Message;
return;
}
finally
{
StatusLabel.Text = "Program zmenený.";
connection.Close();
}
}
}
}
|
edit: query je v poriadku a funguje, takze ten rozhádzany string na zaciatku si nevsimajte |
_________________ I am sorry, did I break your concentration? | |
danciwo
 Užívateľ
 Založený: 25.03.2008 Príspevky: 72
 | Zaslal: So 03.10.09 15:56 |   |
| wotan napísal: | | a si si isty ze toto patri do php? |
ano sorááč, kategoria sa vola PHP ASP, ale nevsimol som si ze je dole aj téma ASP.NET. Mohol by to niekto kompetentný tam premiestnit? Dakujem. |
_________________ I am sorry, did I break your concentration? | |