Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
ASP.NET 2.0 / 3.5 / 4.0
Inserire dati nel db dopo select di verifica
venerdì 02 maggio 2014 - 13.01
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Elenco Tags
C#
|
.NET 4.0
Cyberking
Profilo
| Junior Member
79
messaggi | Data Invio:
ven 2 mag 2014 - 13:01
Ciao a tutti,
vi premetto che mi sto avvicinando ad asp.net leggendo un pò in rete e un pò dalla guida, prima programmavo solo in asp classico
sto provando a creare un inserimento di una foto tramite form con un ridimensionamento, cosa che sono riuscito a fare, ma vorrei anche inserire dei dati nel database
lo script che sto utilizzando è questo che posto di seguito, ho anche fatto un insert, ma quella che ho fatto mi da la possibilità di eseguire un insert in una tabella unica, mentre io vorrei prima fare una select per verificare se l'email dell'utente è già presente in una tabella, se non lo è la inserisco altrimenti mi tiro fuori l'id di questo record, che utilizzo per inserirla nel db delle foto insieme al nome della foto
Infine, vorrei anche inserire dei controlli javascript, a finché prima di richiamare la funzione asp.net verifichi lato client che l'utente abbia inserito correttamente i campi nel form
[code]
<%@ Page Language="C#" %>
<%@ import Namespace="System.Drawing.Imaging" %>
<%@ import Namespace="System.Data.OleDb" %>
<script runat="server">
void UploadBtn_Click(Object sender, EventArgs e)
{
String UploadedFile = MyFile.PostedFile.FileName;
int ExtractPos = UploadedFile.LastIndexOf("\\") + 1;
//to retrieve only Filename from the complete path
String UploadedFileName = UploadedFile.Substring(ExtractPos,UploadedFile.Length - ExtractPos);
String percorso= Request.PhysicalPath;
int daEliminare= percorso.Length -18;
string nuovo = percorso.Substring(0, daEliminare) + "foto/";
MyFile.PostedFile.SaveAs(nuovo + UploadedFileName);
//thumbnail creation starts
try
{
//Read in the image filename whose thumbnail has to be created
String imageUrl= UploadedFileName;
//You may even specify a standard thumbnail size
int imageWidth = 250;
int imageHeight = 250;
if (imageUrl.IndexOf("/") >= 0 || imageUrl.IndexOf("\\") >= 0 )
{
//We found a / or \
Response.End();
}
imageUrl = nuovo + imageUrl;
System.Drawing.Image fullSizeImg = System.Drawing.Image.FromFile(imageUrl);
int altezzaNuova;
int larghezzaNuova;
larghezzaNuova = fullSizeImg.Width * imageHeight / fullSizeImg.Height;
System.Drawing.Image.GetThumbnailImageAbort dummyCallBack = new System.Drawing.Image.GetThumbnailImageAbort(ThumbnailCallback);
System.Drawing.Image thumbNailImg = fullSizeImg.GetThumbnailImage(larghezzaNuova, imageHeight, dummyCallBack, IntPtr.Zero);
DateTime MyDate = DateTime.Now;
string nuovoFileName;
string[] words = UploadedFileName.Split('.');
String MyString = "min_" + words[0] + ".jpg";
thumbNailImg.Save(nuovo + MyString, ImageFormat.Jpeg);
thumbNailImg.Dispose();
evento=true;
/* insert
OleDbConnection conn = null;
OleDbCommand cmd = null;
OleDbDataReader dr = null;
conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; data source=" + Server.MapPath("/mdb-database/prova.mdb"));
conn.Open();
System.Console.WriteLine("Connessione aperta sul db");
string sql = "update products set imageUrl='"+ UploadedFileName +"', smallImageUrl='" + MyString + "' where idProduct= "+ idProduct ;
System.Console.WriteLine(sql);
cmd = new OleDbCommand(sql, conn);
System.Console.WriteLine("Stringa sql eseguita");
cmd.ExecuteNonQuery();
System.Console.WriteLine("Scrivo nella tabella");
conn.Close();
}
catch(Exception ex)
{
Response.Write("An error occurred - " + ex.ToString());
}
}
//this function is reqd for thumbnail creation
public bool ThumbnailCallback()
{
return false;
}
</script>
[code]
per richiamare la funzione utilizzo questo link
<a href="#" class="button" runat="server" onserverclick="UploadBtn_Click">Invia</a>
mi sapete dare qualche dritta
ho commentato la parte dell'insert che per ora utilizzo
Grazie
http://www.cyberkings.it
ridaria
Profilo
| Expert
905
messaggi | Data Invio:
dom 4 mag 2014 - 17:57
scusa, ma a occhio non vedo il problema.
ti da qualche errore la procedura?
CIAO
Riccardo D'Aria
Cyberking
Profilo
| Junior Member
79
messaggi | Data Invio:
dom 4 mag 2014 - 23:28
Ciao,
forse non mi sono spiegato bene.
Non ho problemi in questo script, ma in questo momento eseguo l'upload dell'immagine faccio l'insert nel db
Io invece vorrei fare l'upload dell'immagine,
fare una select in una tabella (utenti) e verificare la presenza dell'email
se l'email non è presente (.eof) faccio l'insert in questa tabella e mi prendo il nuovo id altrimenti mi tiro fuori l'id dell'email
A questo punto faccio l'insert in un altra tabella con il nome della foto e l'id ricevuto/creato
è la prima parte della select che non so fare in questa funzione
http://www.cyberkings.it
ridaria
Profilo
| Expert
905
messaggi | Data Invio:
lun 5 mag 2014 - 07:59
devi associare l'immagine al soggetto?
Giusto?
Riccardo D'Aria
Cyberking
Profilo
| Junior Member
79
messaggi | Data Invio:
lun 5 mag 2014 - 10:44
Intanto, grazie per il supporto.
Si ho due tabelle
utenti e foto
in utenti ho id ed email
in foto ho id,foto,id_utente
in asp classico avrei fatto così
prima la verifica e l'inserimento dell'email e poi dopo nell'altra tabella l'inserimento del nome della foto
email=pippo@libero.it
set rs= server.CreateObject("adodb.recordset")
sql="select top 1 id from utenti where email='"& email &"'"
rs.open sql,connect
if not rs.eof then
idUtente=rs("id")
else
set rsADO = Server.CreateObject("ADODB.Recordset")
rsADO.ActiveConnection = connect
rsADO.Source = utenti
rsADO.CursorType = 1
rsADO.CursorLocation = 3
rsADO.LockType = 3
rsADO.Open
rsADO.AddNew
rsADO("email")=email
rsADO.update
idUtente=rsADO("id")
rsADO.close
end if
set rsADO = Server.CreateObject("ADODB.Recordset")
rsADO.ActiveConnection = connect
rsADO.Source = foto
rsADO.CursorType = 1
rsADO.CursorLocation = 3
rsADO.LockType = 3
rsADO.Open
rsADO.AddNew
rsADO("id_utente")=idUtente
rsADO("foto")=fotoInserita
rsADO.update
rsADO.close
http://www.cyberkings.it
Cyberking
Profilo
| Junior Member
79
messaggi | Data Invio:
mar 3 giu 2014 - 13:28
Sto ancora cercando di fare questa insert nel db,
ho eseguito diverse modifiche allo script ma ho ancora dei problemi
il primo problema ce l'ho quando inserisco un indirizzo che non c'è nel db e mi da eccezione
vorrei mettere un if .eof o qualcosa del genere
ho provato a modificare il codice che vedete ancora + sotto con questo primo blocco di if ma nulla
codice:
object RsCom = cmd.ExecuteScalar();
int idUtente=0;
if (RsCom != null )
{
idUtente= (Int32)RsCom;
MyContentType.InnerHtml=idUtente.ToString();
}
non mi da errore ma nemmeno mi entra nell'if
quindi non riesco ad accedere all'if che ti ho incollato su
per scrivere nel db
cosa sto sbagliando?
non avendo ben capito ancora tante cose di c#
vi chiedo ma sto usando troppi command o va bene così?
grazie
qui di seguito vi posto tutto il codice di quello che faccio
ovvero controllare prima se è presente l'email nella tabella utenti
se non lo è provo ad inserirlo e con il suo nuovo in inserire poi la foto nel db foto
altrimenti se è già presente ( e qui mi va in errore) mi tiro fuori il suo id e metto solo i dati della foto nel db
string sql = "select idUtente from utenti where mail='"+ Email +'";
cmd = new OleDbCommand(sql, conn);
conn.Open();
int idUtente=0;
idUtente = (Int32)cmd.ExecuteScalar();
MyContentType.InnerHtml=idUtente.ToString();
if ( idUtente==0)
{
OleDbCommand cmd2 = null;
sql="insert into utenti mail values '" + Email + "'";
cmd2 = new OleDbCommand(sql, conn);
cmd2.ExecuteNonQuery();
OleDbCommand cmd3 = null;
sql = "select idUtente from utenti where mail='" + Email + "'";
cmd3 = new OleDbCommand(sql, conn);
idUtente = (Int32)cmd3.ExecuteScalar();
MyContentType.InnerHtml=idUtente.ToString();
OleDbCommand cmd4 = null;
sql="insert into foto (coordinate,IdUtente,foto) values ('" + coordinate + "','" + idUtente + "','"+ UploadedFileName +"')";
cmd4 = new OleDbCommand(sql, conn);
cmd4.ExecuteNonQuery();
}
else
{
OleDbCommand cmd4 = null;
sql="insert into foto (coordinate,IdUtente,foto) values ('" + coordinate + "','" + idUtente + "','"+ UploadedFileName +"')";
cmd4 = new OleDbCommand(sql, conn);
cmd4.ExecuteNonQuery();
}
http://www.cyberkings.it
ridaria
Profilo
| Expert
905
messaggi | Data Invio:
mer 4 giu 2014 - 06:24
>Sto ancora cercando di fare questa insert nel db,
>ho eseguito diverse modifiche allo script ma ho ancora dei problemi
>
>
>il primo problema ce l'ho quando inserisco un indirizzo che non
>c'è nel db e mi da eccezione
cominciamo da qui:
inserisci un indirizzo dove, e che operazione fai su questo indirizzo: select, modifica o altro?
Ciao
Riccardo D'Aria
Cyberking
Profilo
| Junior Member
79
messaggi | Data Invio:
mer 4 giu 2014 - 10:50
ho due tabelle
una diciamo anagrafica e una con i percorsi delle foto e l'id dell'utente che l'ha inserito
sopra avevo postato il codice ma lo riscrivo qui di seguito per farti capire cosa cerco di fare
in questo modo vado a fare la verifica se l'utente è già presente nel db
se l'avessi fatto in asp classico avrei fatto i rs.eof then
invece come l'ho fatto io non mi da errore,.....ma nemmeno mi entra in un if
string sql = "select idUtente from utenti where mail='"+ Email +'";
cmd = new OleDbCommand(sql, conn);
conn.Open();
int idUtente=0;
idUtente = (Int32)cmd.ExecuteScalar();
MyContentType.InnerHtml=idUtente.ToString();
if ( idUtente==0)
{
....non c'è inserisci nel db anagrafica
}
else
{
.....non c'è
}
http://www.cyberkings.it
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !