Udfører update og insert med update sker ikke
Jeg ved ikke om dette er en .NET fejl eller en MySQL fejl, men fejlen lyder som følger:1. Jeg kalder min aspx-fil fra min applet, denne kaldes med bl.a. en lang GET-variabel på 600 tegn indeholdende noget level-data (til et spil).
2. I ASPX-filen gør jeg følgende
a. Laver update i databasen hvor jeg indsætter det nye level-data med det på gældende tidspunkt.
b. Jeg aflæser "row affected" på cmd.ExecuteNonReader()
c. Jeg laver en insert i min log med levelid-opdateret, antal rows affected og samme tidspunkt.
3. Jeg aflæser værdierne i min database og her kommer det underlige:
- Nogle gange står der i log'en at der klokken x blev opdateret en level med id x og antals rows affected ved denne opdatering er 1. Men dette stemmer ikke overens med klokkeslettet i den tabel jeg opdaterede! Og leveldata er da heller ikke blevet opdateret i denne level-tabel.
Jeg aner ikke hvad denne fejl kan skyldes. Kan det være fordi jeg sender en værdi på 600 tegn til databasen? Men hvordan kan den så stadig sige 1 row affected?
Code:
protected void Page_Load(object sender, EventArgs e)
{
if (Request["levelid"] != null && Request.QueryString["leveldata"] != null)
{
int levelID = Convert.ToInt32(Request.QueryString["levelid"]);
String leveldata = Request.QueryString["leveldata"];
DateTime now = DateTime.Now;
String query = "UPDATE ryerplexlevel SET leveldata = '"+leveldata+"', datesaved = '" + now.Year + "-" + now.Month + "-" + now.Day + " " + now.Hour + ":" + now.Minute + ":" + now.Second + "' WHERE ryerplexlevelid = " + levelID + " AND accepted = 0";
OdbcConnection con = new OdbcConnection(Constants.CONNECTION_STRING);
OdbcCommand cmd = new OdbcCommand(query, con);
con.Open();
int affected = cmd.ExecuteNonQuery();
con.Close();
Log.WriteToLog("Saved changes to a map with levelid: " + levelID+". Rows affected: "+affected);
}
}
På forhånd tak