26. november 2004 - 22:15Der er
41 kommentarer og 1 løsning
Database i .NET script..
jeg er ikke særlig god til ASP.NET, men jeg har et script som jeg skal ha modificeret så den skriver til en database... koden til databasen skal kunne dette:
I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
if(upload_file.PostedFile.FileName.IndexOf("\\") > 0) { strFileName = upload_file.PostedFile.FileName.Substring(upload_file.PostedFile.FileName.LastIndexOf("\\") + 1); } else { // jeg ved ikke hvad det her gør godt for... måske gør du :o) strFileName = "ukendt fil"; } strFileName = DateTime.Now.ToString("yyyy-MM-dd-HHmmss")+"-"+strFileName; if(!File.Exists(Server.MapPath("999999uploaded/stor/" + strFileName))) {
int MaxSize = 100; try { System.Drawing.Image image = new System.Drawing.Bitmap(upload_file.PostedFile.InputStream); upload_file.PostedFile.SaveAs(Server.MapPath("999999uploaded/stor/" + strFileName)); System.Drawing.Bitmap bOrg = (System.Drawing.Bitmap)image; System.Drawing.Imaging.ImageFormat format = image.RawFormat;
if(image.Width>MaxSize || image.Height>MaxSize) { Bitmap b = Resize(bOrg,MaxSize,MaxSize); b.Save(Server.MapPath("999999uploaded/" + strFileName ),format); } else { //Gem original da billede allerede er mindre end 100px upload_file.PostedFile.SaveAs(Server.MapPath("999999uploaded/" + strFileName)); } Response.Write("<a href=\"img.asp?img=999999uploaded/stor/" + strFileName + "\">vis billede</a></p>");
Dim con As OleDbConnection = New OleDbConnection ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("/data/data.mdb") & ";User Id=;Password=") con.Open Dim cmd As OleDbCommand = New OleDbCommand ("INSERT INTO Message (image,dato,userid) VALUES ('" & strFileName & "','" & DateTime.Now.ToString("yyyy-MM-dd") & "'," & Session("UserID") & ")", con) cmd.ExecuteNonQuery con.Close
} catch { Response.Write("Der skete en fejl ved processering af billedet"); } } else { Response.Write("Filnavn eksisterer allerede, prøv at ombøbe billedet!"); }
} else { //Fil var for stor Response.Write("Billedet er over 100kb"); } } private static Bitmap Resize(Bitmap b, int MaxHeight, int MaxWidth) { int nWidth = b.Width; int nHeight = b.Height; if(nHeight>MaxHeight) { nWidth = (int)((((double)b.Width)/((double)b.Height))*((double)MaxHeight)); nHeight = MaxHeight; } if(nWidth>MaxWidth) { nWidth=MaxWidth; nHeight = (int)((((double)b.Height)/((double)b.Width))*((double)MaxWidth)); } Bitmap bTemp = (Bitmap)b.Clone(); b = new Bitmap(nWidth, nHeight, System.Drawing.Imaging.PixelFormat.Format24bppRgb); double nXFactor = (double)bTemp.Width/(double)nWidth; double nYFactor = (double)bTemp.Height/(double)nHeight; for (int x = 0; x < b.Width; ++x) for (int y = 0; y < b.Height; ++y) b.SetPixel(x, y, bTemp.GetPixel((int)(Math.Floor(x * nXFactor)), (int)(Math.Floor(y * nYFactor)))); return b; }
ok fandt ud af det med debug og jeg får følgende fejl:
Compilation Error Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.
Compiler Error Message: CS1002: ; expected
Source Error:
Line 39: Response.Write("<a href=\"img.asp?img=999999uploaded/stor/" + strFileName + "\">vis billede</a></p>"); Line 40: Line 41: Dim con As OleDbConnection = New OleDbConnection ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("/data/data.mdb") & ";User Id=;Password="); Line 42: con.Open Line 43: Dim cmd As OleDbCommand = New OleDbCommand ("INSERT INTO Message (image,dato,userid) VALUES ('" & strFileName & "','" & DateTime.Now.ToString("yyyy-MM-dd") & "'," & Session("UserID") & ")", con)
Compiler Error Message: CS0246: The type or namespace name 'OleDbConnection' could not be found (are you missing a using directive or an assembly reference?)
i: OleDbConnection con = new OleDbConnection ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("/data/data.mdb") + ";User Id=;Password=");
ok, nu kommer der ingen fejlmelding, men der bliver ikke gemt noget i databasen! og den skriver også "Der skete en fejl ved processering af billedet"... men bildet bliver uploaded fint nok
det ser da rigtigt ud, userid kommer på senere, jeg gidder bare ikke til at skulle lave en session hver gang jeg tester det... men det virker stadig ikke...
if(upload_file.PostedFile.FileName.IndexOf("\\") > 0) { strFileName = upload_file.PostedFile.FileName.Substring(upload_file.PostedFile.FileName.LastIndexOf("\\") + 1); } else { // jeg ved ikke hvad det her gør godt for... måske gør du :o) strFileName = "ukendt fil"; } strFileName = DateTime.Now.ToString("yyyy-MM-dd-HHmmss")+"-"+strFileName; if(!File.Exists(Server.MapPath("upload/stor/" + strFileName))) {
int MaxSize = 100; try { System.Drawing.Image image = new System.Drawing.Bitmap(upload_file.PostedFile.InputStream); upload_file.PostedFile.SaveAs(Server.MapPath("upload/stor/" + strFileName)); System.Drawing.Bitmap bOrg = (System.Drawing.Bitmap)image; System.Drawing.Imaging.ImageFormat format = image.RawFormat;
if(image.Width>MaxSize || image.Height>MaxSize) { Bitmap b = Resize(bOrg,MaxSize,MaxSize); b.Save(Server.MapPath("upload/" + strFileName ),format); } else { //Gem original da billede allerede er mindre end 100px upload_file.PostedFile.SaveAs(Server.MapPath("upload/" + strFileName)); } Response.Write("<a href=\"img.asp?img=upload/stor/" + strFileName + "\">vis billede</a></p>");
OleDbConnection con = new OleDbConnection ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("/ny/data/data2.mdb") + ";User Id=;Password="); con.Open(); OleDbCommand cmd = new OleDbCommand ("INSERT INTO billeder (image,dato,userid) VALUES ('" + strFileName + "','" + DateTime.Now.ToString("yyyy-MM-dd") + "','" + strFileName + "')", con); Response.Write(cmd.CommandText); cmd.ExecuteNonQuery(); con.Close();
} catch(Exception ex) { Response.Write("Der skete en fejl ved processering af billedet: " + ex.Message); } } else { Response.Write("Filnavn eksisterer allerede, prøv at ombøbe billedet!"); }
} else { //Fil var for stor Response.Write("Billedet er over 100kb"); } } private static Bitmap Resize(Bitmap b, int MaxHeight, int MaxWidth) { int nWidth = b.Width; int nHeight = b.Height; if(nHeight>MaxHeight) { nWidth = (int)((((double)b.Width)/((double)b.Height))*((double)MaxHeight)); nHeight = MaxHeight; } if(nWidth>MaxWidth) { nWidth=MaxWidth; nHeight = (int)((((double)b.Height)/((double)b.Width))*((double)MaxWidth)); } Bitmap bTemp = (Bitmap)b.Clone(); b = new Bitmap(nWidth, nHeight, System.Drawing.Imaging.PixelFormat.Format24bppRgb); double nXFactor = (double)bTemp.Width/(double)nWidth; double nYFactor = (double)bTemp.Height/(double)nHeight; for (int x = 0; x < b.Width; ++x) for (int y = 0; y < b.Height; ++y) b.SetPixel(x, y, bTemp.GetPixel((int)(Math.Floor(x * nXFactor)), (int)(Math.Floor(y * nYFactor)))); return b; }
nå, jeg ved ikke om du kan finde ud af det, men jeg har lagt mærke til at der bliver oprettet en fil der heder data.ldb som er noget "Microsoft Office Access Record-Locking Information" når man prøver at skrive til databasen, kan det være derfor den ikke vil skrive til den?
enten image eller dato må så være et reserveret ord (jeg er ret sikker på at det ikke er userid)
irriterende finesse
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.