Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Uppdatering vill inte fungera

Postades av 2006-08-20 00:08:32 - Magnus Hallberg, i forum asp.net generellt, Tråden har 12 Kommentarer och lästs av 436 personer

Jag försöker uppdatera min databas, jaag har följande kod i code behind.
<code>
protected void Page_Load(object sender, EventArgs e)
{
base.Page.Title = "Golden Eagles - Administratera nyheter";
pnlEdit.Visible = false;

if (Request.QueryString["delId"] != null)
myID = int.Parse(Request.QueryString["delId"]);
deleteNews(myID);

if (Request.QueryString["editID"] != null)
{
myID = int.Parse(Request.QueryString["editId"]);
GridView1.Visible = false;
pnlEdit.Visible = true;
pnlAddNews.Visible = false;

DataSet dsNews = new DataSet();
dsNews = myDB.getOneNews(myID);
if (dsNews != null)
{
foreach (DataRow dr in dsNews.Tables[0].Rows)
{
string header= dr["newsHeader"].ToString();
string ingress = dr["newsIngress"].ToString();
string news = dr["news"].ToString();

txtUpdateHeader.Text = header;
txtUpdateIngress.Text = ingress;
txtUpdateNews.Text = news;
}
}
}

}

protected void updateNews(object sender, EventArgs e)
{

string newHeader = txtUpdateHeader.Text;
string newIngress = txtUpdateIngress.Text;
string newNews = txtUpdateNews.Text;

lblEdit.Text = myDB.updateNews(myID, newHeader, newIngress, newNews);
Response.Redirect("news.aspx");
}
</code>

Denna kod har jag i min klass för databasanrop.
<code>
public string updateNews(int _id, string _header, string _ingress, string _news)
{
SqlConnection conn = new SqlConnection(connectionString);
SqlCommand cmd = new SqlCommand("editNews", conn);
cmd.CommandType = CommandType.StoredProcedure;

// SQL parameters...
cmd.Parameters.Add(new SqlParameter("@id", SqlDbType.Int, 4));
cmd.Parameters["@id"].Value = _id;

cmd.Parameters.Add(new SqlParameter("@header", SqlDbType.NVarChar, 200));
cmd.Parameters["@header"].Value = _header;

cmd.Parameters.Add(new SqlParameter("@ingress", SqlDbType.NVarChar, 1000));
cmd.Parameters["@ingress"].Value = _ingress;

cmd.Parameters.Add(new SqlParameter("@news", SqlDbType.NVarChar, 4000));
cmd.Parameters["@news"].Value = _news;

try
{
conn.Open(); // Opens the connection...
cmd.ExecuteNonQuery(); // Execute the SQL query...
return "Nyheten är ändrad."; // Return...
}

catch (Exception err)// Error ends up here...
{
return "Det gick inte att ändra nyheten, försök igen.<br />" + err.Message; // Returns...
}

finally
{
conn.Close();// Close the connection...
}
}
</code>

Min lagrade procedur
<code>
ALTER PROC [dbo].[editNews]

@id int,
@header nvarchar(200),
@ingress nvarchar(1000),
@news nvarchar(4000)

AS
IF(EXISTS(SELECT * FROM news WHERE newsID = @id))
BEGIN
UPDATE news SET
newsHeader = @header,
newsIngress = @ingress,
news = @news
WHERE newsID = @id
Select 1
RETURN
END

ELSE
BEGIN
SELECT -1
RETURN
END
</code>

Det som blir fel är att inget uppdateras.


Svara

Sv: Uppdatering vill inte fungera

Postades av 2006-08-20 01:42:08 - Göran Andersson

Du hämtar ju in ny data till fälten varje gång sidan laddas, Alltså ersätts värdena som du skrivit in med de gamla värdena innan de sparas.

Jag ser också att du har glömt klamrarna runt koden som hanterar "delId", vilket gör att funktionen deleteNews alltid anropas, även ifall det inte finns någon sådan querystring.


Svara

Sv:Uppdatering vill inte fungera

Postades av 2006-08-20 08:08:49 - Magnus Hallberg

Det har du helt rätt i. Men hur fixar jag det? Jag försökte med IsPostBack men det vill inte fungera i alla fall.
<code>
protected void Page_Load(object sender, EventArgs e)
{
base.Page.Title = "Golden Eagles - Administratera nyheter";

if (!Page.IsPostBack)
{
pnlEdit.Visible = false;

if (Request.QueryString["delId"] != null)
{
myID = int.Parse(Request.QueryString["delId"]);
deleteNews(myID);
}

if (Request.QueryString["editID"] != null)
{
myID = int.Parse(Request.QueryString["editId"]);
GridView1.Visible = false;
pnlEdit.Visible = true;
pnlAddNews.Visible = false;

DataSet dsNews = new DataSet();
dsNews = myDB.getOneNews(myID);
if (dsNews != null)
{
foreach (DataRow dr in dsNews.Tables[0].Rows)
{
string header = dr["newsHeader"].ToString();
string ingress = dr["newsIngress"].ToString();
string news = dr["news"].ToString();

txtUpdateHeader.Text = header;
txtUpdateIngress.Text = ingress;
txtUpdateNews.Text = news;
}
}
}
}
</code>


Svara

Sv: Uppdatering vill inte fungera

Postades av 2006-08-20 12:37:23 - Göran Andersson

Du använder variabeln myID, som inte har fått något värde.


Svara

Sv:Uppdatering vill inte fungera

Postades av 2006-08-20 17:27:25 - Magnus Hallberg

hmmm jag är nog riktigt trög :( Men jag fattar inte hur du menar att jag ska skriva koden. Om du har tid och lust kan du kanske visa mig?


Svara

Sv: Uppdatering vill inte fungera

Postades av 2006-08-20 23:23:03 - Magnus Hallberg

Snälla kan nån hjälpa mig att få ordning på detta? Jag kommer inte på vad som är fel


Svara

Sv:Uppdatering vill inte fungera

Postades av 2006-08-21 22:33:11 - Magnus Hallberg

Är det verkligen ingen som kan hjälpa mig med detta? Jag behöver verkligen hjäl, jag hittar inte hur jag ska lösa det. Antagligen är det väl posback som spökar?


Svara

Sv: Uppdatering vill inte fungera

Postades av 2006-08-22 00:12:56 - Göran Andersson

Åh, vad bra att du skrev så många meddelanden om ingenting. Jag var inne här massor av gånger, men jag ville inte svara eftersom du inte hade tjatat tillräckligt mycket. ;)

Koden som sätter variabeln körs ju bara första gången som sidan skapas, alltså är den tom när sidan körs igen på postback. Du får ju hämta värdet ifrån querystring även vid postback.


Svara

Sv:Uppdatering vill inte fungera

Postades av 2006-08-23 00:34:42 - Magnus Hallberg

Sorry att jag inte svarat, jag har varit borta ett par dagar. jag ska försöka fixa till det så som du säger.

HAHA det blir lätt så att man tjatar om ingenting när man inte fattar nåt:) Tacj för hjälpen och tålamodet


Svara

Sv: Uppdatering vill inte fungera

Postades av 2006-08-23 06:28:46 - Magnus Hallberg

)(%?#&%& ÅHHH Jag blir tokig på detta, jag fattar barar inte hur jag ska få det att fungera. Jag har suttit hela natten med dyngan nu och det går bara inte att få det att fungera. Jag har fått det att fungera om jag lägger till en sida, men det känns ju lite onödigt. Finns det någon vänlig själ som kan visa mig med kod hur jag ska göra? Min kod ser ut så här nu:
<code>
public partial class admin_news : System.Web.UI.Page
{
db myDB = new db();
public int myID;

protected void Page_Load(object sender, EventArgs e)
{
base.Page.Title = "Golden Eagles - Administratera nyheter";
pnlEdit.Visible = false;

if (!Page.IsPostBack)
{
if (Request.QueryString["delId"] != null)
{
myID = int.Parse(Request.QueryString["delId"]);
deleteNews(myID);
}

if (Request.QueryString["editID"] != null)
{
loadNews();
}
}
}

protected void updateNews(object sender, EventArgs e)
{
string newHeader = txtUpdateHeader.Text;
string newIngress = txtUpdateIngress.Text;
string newNews = txtUpdateNews.Text;

lblEdit.Text = myDB.updateNews(myID, newHeader, newIngress, newNews);
Response.Redirect("news.aspx");
//lblDBAnswer.Text = "Nyheten är uppdaterad";
}

protected void btnAddNews_Click(object sender, EventArgs e)
{
string user = User.Identity.Name.ToString();
string header = txtHeader.Text;
string ingress = txtIngress.Text;
string news = txtNews.Text;
string intern = rblPublic.SelectedValue.ToString();

lblDBAnswer.Text = myDB.addNews(user, header, ingress, news, intern);
}

protected void loadNews()
{
myID = int.Parse(Request.QueryString["editId"]);
GridView1.Visible = false;
pnlEdit.Visible = true;
pnlAddNews.Visible = false;

DataSet dsNews = new DataSet();
dsNews = myDB.getOneNews(myID);
if (dsNews != null)
{
foreach (DataRow dr in dsNews.Tables[0].Rows)
{
string header = dr["newsHeader"].ToString();
string ingress = dr["newsIngress"].ToString();
string news = dr["news"].ToString();

txtUpdateHeader.Text = header;
txtUpdateIngress.Text = ingress;
txtUpdateNews.Text = news;
}
}
}

protected void deleteNews(int myID)
{
myDB.deleteNews(myID);
}
}
</code>


Svara

Sv:Uppdatering vill inte fungera

Postades av 2006-08-23 12:56:06 - Göran Andersson

Du använder variabeln myID i funktionen updateNews.

Titta nu på var du sätter värdet på varabeln, så ser du att den ligger innanför if-satsen "If (!Page.IsPostBack)". Alltså körs den koden enbart första gången sidan skapas.

När du klickar på knappen så skapas sidan igen, men värdet på myID sätts inte.


Svara

Sv: Uppdatering vill inte fungera

Postades av 2006-08-23 14:39:18 - Magnus Hallberg

Ja nu är jag med! Det tog ett tag för poletten att ramla ner. Tack Göran :)


Svara

Sv:Uppdatering vill inte fungera

Postades av 2006-08-23 17:00:21 - Magnus Hallberg

Det fungerar perfekt, jag gjorde en funktion som kollar om editID har nåt värde och om den har det så sätts myID till det värdet. Tackar Göran :)


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 602
27 953
271 705
532
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies