Just nu i M3-nätverket
Gå till innehåll

Coffer

Medlem
  • Antal inlägg

    154
  • Gick med

  • Senaste besök

Om Coffer

  • Medlemstitel
    Aktiv

Kontaktinformation

  • Hemsida
    http://www.gisslen.net
  1. Hej! Jag sitter med ett problem som jag till synes inte får någon rätsida på. Jag skall skriva till en databas men kan inte ansluta till den. Hela körningen stannar och tuggar på ett och samma ställe - den kommer liksom inte vidare. I min programkod (VB.NET) har jag med hjälp av breakpoints kunnat konstatera att felet ligger på rad 3. Programmet kommer alltså inte förbi rad 3. Kan någon se varför det blir fel??? [Avkortad kod för läsbarhetens skull] 1. objCmd.CommandText = "LOCK TABLE forum WRITE;" 2. objCmd.ExecuteNonQuery() 3. objCmd.CommandText = "SELECT @myLeft := lft FROM forum WHERE idforum = '1';UPDATE forum SET rgt = rgt + 2 WHERE rgt > @myLeft;UPDATE forum SET lft = lft + 2 WHERE lft > @myLeft;" 4. objCmd.ExecuteNonQuery() [Avkortad kod för läsbarhetens skull] UPPDATERING: Jag har efter mängder av felsökande skrivit om koden lite. Den ser nu ut som följer: Try If objConn.State <> ConnectionState.Open Then objConn.Open() End If Dim strProfile As String = String.Empty If Page.User.Identity.IsAuthenticated = True Then strProfile = GetStubs.GetUserGuid(Page.User.Identity.Name) Else strProfile = String.Empty End If Dim objCmd As New MySqlCommand("SELECT @myLeft := lft FROM forum WHERE idforum = '1';UPDATE forum SET rgt = rgt + 2 WHERE rgt > @myLeft;UPDATE forum SET lft = lft + 2 WHERE lft > @myLeft;INSERT INTO forum (idforum, idarticles, idprofiles, editor, body, postedat, ipaddress, status, rating, lft, rgt) VALUES(?idforum,?idarticles,?idprofiles,?editor,?body,?postedat,?ipaddress,?status,?rating,@myLeft + 1,@myLeft + 2);", objConn) objCmd.Parameters.Add("?idforum", MySqlDbType.VarChar, 36).Value = Guid.NewGuid.ToString() objCmd.Parameters.Add("?idarticles", MySqlDbType.VarChar, 36).Value = Request.QueryString("id") objCmd.Parameters.Add("?idprofiles", MySqlDbType.VarChar, 36).Value = strProfile.ToString() objCmd.Parameters.Add("?editor", MySqlDbType.VarChar, 255).Value = txtName.Text objCmd.Parameters.Add("?body", MySqlDbType.Text).Value = txtBody.Text objCmd.Parameters.Add("?postedat", MySqlDbType.DateTime).Value = DateTime.Now.ToString() objCmd.Parameters.Add("?ipaddress", MySqlDbType.VarChar, 150).Value = HttpContext.Current.Request.ServerVariables("REMOTE_ADDR").ToString() objCmd.Parameters.Add("?status", MySqlDbType.VarChar, 255).Value = "Open" objCmd.Parameters.Add("?rating", MySqlDbType.Int32).Value = "0" objCmd.ExecuteNonQuery() 'HÄR STANNAR KODEN! VARFÖR!!! 'If IsDoNotify(Request.QueryString("id")) = True Then 'SendMessage(Request.QueryString("id")) 'End If 'PageBase.FlushMemory() Response.Redirect(CustomClasses.CustomTags.ResolveUrl("~/Article.aspx?id=" & Request.QueryString("id"))) Catch ex As Exception Monitoring.Debugging.Bug(CustomClasses.CustomTags.FixParagraph(ex.ToString())) Finally If objConn.State <> ConnectionState.Closed Then objConn.Close() End If End Try Nu uppstår alltså felet i objCmd.ExecuteNonQuery. Sätter jag en breakpoint där stannar kompileringen när den kommer dit. Flyttar jag min breakpoint en rad nedåt kommer kompileringen aldrig fram dit. Vad är fel?? Jag sliter mitt korta hår för detta. (Kan jag för övrigt placera en lock-unlock table i inledningen och slutet av frågeuttrycket, eller hinner tabellen stängas innan körningen då? Tacksam för snabbt svar. Med vänlig hälsning Kristofer Gisslén
  2. Tack skall du ha Sasja! När du säger det så är det ju helt självklart att det är det som saknas. Jag lade in If Not Page.IsPostBack Then // End If och plötsligt fungerar nu allt precis som det skall. Stort tack för knuffen i rätt riktning. Poäng tilldelad! // Kristofer
  3. Jag har ett problem jag inte får någon rätsida på: Jag har skapat en funktion för att uppdatera innehållet i en databastabell. Funktionen hämtar ut nuvarande värden ur en tabell där ID:et är givet och fyller ett antal formulärfält med informationen. Tanken är sedan att datoranvändaren kan fylla på ny information eller ta bort något ur det som hämtats ur databasen. När användaren klickar på knappen spara skall den nya informationen skrivas över den gamla. Så här ser funktionerna ut (i korthet): Den första funktionen hämtar nuvarande inlägg och skriver in dem i formulärfälten. Dim objCmd As New OdbcCommand("SELECT * FROM Drafts WHERE PKID = '" & Request.QueryString("id") & "';", objConn) Dim objReader As OdbcDataReader = Nothing Try objConn.Open() objReader = objCmd.ExecuteReader() While objReader.Read() tbTitle.Text = objReader("Title") tbContent.Value = objReader("Content") tbTags.Text = objReader("Tags") End While Catch ex As Exception Throw ex Finally If Not objReader Is Nothing Then objReader.Close() End If objConn.Close() End Try Den andra funktion är till för att spara den uppdaterade informationen. Dim objCmdSave As New OdbcCommand("UPDATE Drafts SET Title = ?, LTitle = ?, Content = ?, Tags = ?, Author = ?, PostedAt = ? WHERE PKID = '" & Request.QueryString("id") & "';", objConn) objCmdSave.Parameters.Add("?Title", OdbcType.Text).Value = tbTitle.Text objCmdSave.Parameters.Add("?LTitle", OdbcType.Text).Value = LCase(ReplaceTitle(tbTitle.Text)) objCmdSave.Parameters.Add("?Content", OdbcType.Text).Value = ReplaceCharacter(tbContent.Value) objCmdSave.Parameters.Add("?Tags", OdbcType.Text).Value = tbTags.Text objCmdSave.Parameters.Add("?Author", OdbcType.VarChar, 255).Value = "Kristofer Gisslén" objCmdSave.Parameters.Add("?PostedAt", OdbcType.DateTime).Value = DateTime.Now.ToString() Try objConn.Open() objCmdSave.ExecuteNonQuery() Catch ex As Exception Throw ex Finally objConn.Close() End Try Problemet är bara det att all den information som hämtas ur formulärfälten sparas i det skick de hämtades ur datasen i första funktionen, dvs. inga ändringar gjorda av användaren sparas. Ser någon vad det är i koden som orsakar detta? Med vänlig hälsning // Kristofer
  4. Japp, listan heter ddl. Jag har för att vara riktigt övertydlig mot mig själv också provat att behålla standardnamnet "DropDownList1" och då också ändrat alla hänvisningar till samma namn med oförändrat resultat. Det märkliga är att överallt på webben påstås det att det sätt jag arbetar med min dropdownlist skall fungera, men jag får den aldrig att hitta något värde. Jag förstår verkligen inte vad som är fel.
  5. Jag har ett problem som jag inte kan hitta någon lösning på. Jag har en dropdownlist som fylls via en funktion med en mängd värden. VIsar man källkoden i webbläsaren så fylls denna lista alladeles korrekt med ett "value"-värde och ett "text"-värde. Men om jag försöker att hämta värdet med hjälp av ddl.SelectedItem.Value så får jag felmeddelandet "Object reference not set to an instance of an object" vilket innebär att det inte finns något värde i "value" att hämta... Page_Load() innehåller en "If not IsPagePostback" som själva listan fylls ifrån. Jag vill INTE använda AutoPostBack = True, eftersom jag vill kunna hämta detta värde när jag trycker på en "spara"-knapp. Jag måste ha missat något grundläggande här som jag inte fattar... Koden för att fylla listan ser ut så här: Dim ds as Dataset() ds.ReadXml([i]sökvägen till en xml-fil[/i]) ddl.DataSource = ds.Tables(0).DefaultView ddl.Items.Add(New ListItem("destination", "destination")) ddl.DataBind() Den här snutten genererar inga fel: Allt skrivs ut precis som det ska! Men i min Submit-funktion kan inte detta värde hämtas: objcmd.parameter.add("?destination", OdbcType.VarChar).Value = ddl.SelectedItem.Value Kan någon hjälpa mig? Jag behöver verkligen få ordning på detta!
  6. Hej! Jag har letat mig fördärvad efter svar på följande fråga över internet. Jag använder en metod för att mappa url-adresser. Den klarar av att hantera frågeuttryck som sig bör, men det märkliga är att om jag besöker en mappad sida, så kan jag inte använda värdet i frågeuttrycket i någon funktion. Alltså: <add url="~/Test/(.*)/" mappedUrl="~/Test/File.aspx?x=$1" /> mappar sidan som jag vill... skriver jag sedan ut <%=Request.QueryString("x")%> så visas värdet i frågeuttrycket på skärmen, men om jag till exempel försöker att hämta en XML-nod enligt följande... Dim XNode As XmlNode = XDoc.SelectSingleNode("//*[@code='" & Request.QueryString("x") & "']") så får jag ett felmeddelande som säger "System.NullReferenceException: Object reference not set to an instance of an object". Värdet hämtas inte. Varför? Vad händer vid en mappning? Hur gör jag frågeuttrycket tillgängligt i olika funktioner?
  7. myArray[0] ger första värdet i arrayen vilket är helt korrekt. ´(i det här fallet motsvaras det av innehållet i Request.QueryString("i")). Request.QueryString("i") returnerar hela tiden det värde jag skickar in i det (också helt korrekt)... men slår man ihop dem och försöker få arrayen att presentera aktuellt index för arrayen verkar det inte kunna presenteras för indexet sägs alltid vara 0 även om jag vet att frågeuttrycket ligger i index 10 tillexempel...
  8. Hej! Kan någon förklara för mig varför Array.IndexOf(myArray, Request.QueryString("i")) alltid returnerar "0" ur myArray oavsett värdet i Request.QueryString("i")? Den borde ju rimligen visa det arrayindex som värdet i Request.QueryString("i") är lagrat i... Med vänlig hälsning /Coffer
  9. Jag kommer närmre och närmre lösningen men jag lyckas inte komma ända fram. Jag har slitet med detta i snart en vecka. Jag skulle vara tacksam om någon kunde få pusselbitarna att trilla på plats. Nu skriver min kod ut följande: Latitud: "56"... vad den skall skriva ut är "56,38,56.26". Jag har försökt med alla tänkbara lösningar för att skriva ut den. Koden ser ut som följer: Public Property GPSLatitude() As Double Get If Me.IsPropertyDefined(TagNames.GpsLatitude) Then Return Me.GetPropertyRational(TagNames.GpsLatitude).ToDouble() Else Return 0 End If End Get Set(ByVal Value As Double) Try Me.SetPropertyString(TagNames.GpsLatitude, Value.ToString("dd/1,mm/1,ss/1")) Catch ex As Exception End Try End Set End Property För att skriva ut koden använder jag följande anrop: Public Function GetLat(ByVal FileName As String) As String Dim EW As New ExifWorks(Server.MapPath("~/Gallery/" & Request.QueryString("f") & "/" & FileName & ".jpg")) Return EW.GPSLatitude().ToString() End Function Utmatningen blir som sagt fel... vad gör jag fel och hur borde jag göra istället?
  10. Jag var lite otydlig i mitt förra inlägg. Vad jag menar är att om jag använder teckenkodningen UTF-8 så visas strängen med en massa krumelurer. Om jag ändrar kodningen till någon annan teckenuppsättning så visas andra koder men fortfarande inte det rätta innehållet, det vill säga grader, minuter och sekunder. Hur skall jag gå till väga för att strängen som hämtas ur EXIF visas som läsbara grader, minuter och sekunder istället för en massa obegripliga tecken?
  11. Hej igen! Jag inser din poäng och håller helt med dig. Då återstår endast frågan hur informationen görs begriplig för koden? Jag har utvecklat en liten konverterare som skall konvertera informationen i GPS-taggarna till decimaltal. Jag tror att funktionen skall fungera men för att den skall kunna påbörja konverteringen så behövs origianlinformationen ur taggen. Och som beckant... den visas ju fel på skärmen. Hur tar jag mig runt alltihopa?
  12. Vad jag kan se finns det ingen färdig funktion i klassen för detta. Man får uppfinna hjulet själv... Det är därför jag skriver här. Jag försöker att skapa den funktionaliteten på egen hand.
  13. Men då är vi tillbaka till ruta ett. Hur formatterar jag det så att det visas rätt. Min teori är att det duger gott och väl som redan någon annan nämnt här att lagra värdet som en string och sedan koda strängen så att den visas rätt. Men jag får ingen rätsida i hur den skall kodas för att visas rätt. UTF-8 returnerar i Firefox denna sträng: 8&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;. (Helt obegriplig med andra ord - Windows visar följande: 8&). Hur kodar jag om detta till något begripligt?
  14. Jag testar att läsa informationen i programmet PhotoMe som visar informationen som den skall.
  15. Hej! Tack för snabbt svar. Om jag lagrar dem som string så kodas tecknen om till obegripliga tecken... Svarta snedställda kvadrater med frågetecken i. Jag vet inte vad jag gör för fel... men string är (precis som du säger) ett bra ställe att börja på. Hur hindrar jag strängen från att teckenomkodas vid visningen?
×
×
  • Skapa nytt...