Vid konvertering ifrån ett fält i databasen så har jag sprungit på en minneslucka. Kan du inte bara använda datatypen datetime i databasen (eller motsvarande) och köra med parameteriserade frågor så slipper du en massa krångel? Du har säkert rätt Oskar, jag bara vet inte hur jag skall fixa detta. Kan det här vara något? Helt klart så är oskars svar det bästa, ändra i databasen så du lagrar rätt typ till rätt data, allt blir så mycket enklare istlutändan då. Hej Magnus. Jag fick problem när jag ändrade datatypen till datum/tid.Kan inte få dit en nolla.
Talet ser ut så här:
67,45 skall göras om till 01:07,45 men jag kommer bara fram till 01:7,45.
Så här ser själva snurran ut:
<code>
int totalt = ds.Tables["Listan"].Rows.Count;
for (int i = 0; i < totalt; i++)
{
int iId = Convert.ToInt32(ds.Tables["Listan"].Rows[i]["ID"]);
decimal nyttTal = Convert.ToDecimal(ds.Tables["Listan"].Rows[i]["Tid"]);
iSec = 0;
if (nyttTal > 60)
{
while (nyttTal > 60)
{
nyttTal -= 60;
iSec += 1;
}
if(iSec<10)
sTexten = "0" +iSec.ToString() + ":" + nyttTal.ToString();
else
sTexten = iSec.ToString() + ":" + nyttTal.ToString();
}
else
{
sTexten = "00:" + nyttTal.ToString();
}
sql = "UPDATE Listan set NyTid = '" + sTexten + "' WHERE ID =" + iId;
Webbutill.executeSQL(sql, DBConn);
</code>
Variablen nyttTal innehåller alltså ifrån början 67,45 men jag vill ha det till 01:07,45 .
Hur får jag dit nollan framför sjuan, om det bara är en siffra där?Sv: Kan inte få dit en nolla.
Sv:Kan inte få dit en nolla.
Det handlar ju om att bara uppdatera detta en gång, sedan så ärdet klart.Sv: Kan inte få dit en nolla.
<code>
double inTid = 67.45;
string t = string.Format("{0:00}:{1:00.00}", (int)(inTid / 60), (inTid % 60));
</code>Sv: Kan inte få dit en nolla.
Här kommer en lite lösning.
<code>
decimal tid = 67.45M;
string[] tidArray = tid.ToString().Split(',');
TimeSpan timeSpan = new TimeSpan(0, int.Parse(tidArray[0]), int.Parse(tidArray[1]));
textBox1.Text = timeSpan.ToString();
</code>
- MSv:Kan inte få dit en nolla.
Jag har ändrat i databasen, och försöker med ditt kodexempel.
Jag åker dit på en sak, någon har tydligen tagit väldigt god tid på sig 2168,20 och här får jag ett error.
Hur fixar jag det???Sv: Kan inte få dit en nolla.
Jag hadde några som taget sig väldigt god tid på sig, och därför krachade scriptet.
När jag ändrade tillbaka till text, då gick det som smort.
Tack för all hjälp.