1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Erro Em Upload

Discussão em 'Web Development' iniciada por ButterflyEffect, 4 de Abril de 2008. (Respostas: 5; Visualizações: 728)

  1. ButterflyEffect

    ButterflyEffect Power Member

    Código:
    SqlConnection cnn = new SqlConnection(ConfigurationManager.ConnectionStrings["IGMConnectionString"].ConnectionString);
            string upload = ConfigurationManager.AppSettings.Get("upload");
    if (Upload1.HasFile == false)
            {
                erro.Text = "falta o ficheiro!";
            }
            else
            {
                Upload1.SaveAs(System.AppDomain.CurrentDomain.BaseDirectory + "\\images\\" + Upload1.FileName);
            }
    
            try
            {
                SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings["IGMConnectionString"].ConnectionString.ToString());
                SqlCommand cmd2 = new SqlCommand("INSERT INTO estrategias (imagem) VALUES (@imagem)", cn);
                cn.Open();
                cmd2.ExecuteNonQuery();
                cn.Close();
            }
            catch (Exception ex)
            {
                Response.Write(ex.ToString());
            }
            SqlCommand cmd = new SqlCommand("Insert into estrategias (nome_estrategia,caracteres,descricao) values (@nome_estrategia, @caracteres, @descricao)", cnn);
            cnn.Open();
            cmd.Parameters.AddWithValue("@nome_estrategia", txtnome.Text);
            cmd.Parameters.AddWithValue("@caracteres", txtcaracteres.Text);
            cmd.Parameters.AddWithValue("@descricao", txtdescricao.Text);
            cmd.ExecuteNonQuery(); 
            cnn.Close();
            txtnome.Text = "";
            txtcaracteres.Text = "";
            txtdescricao.Text = "";
    Necessito de faxer upload d imagens.Na base dados possui o campo imagem do tipo image. E as imagens sao guardadas em images.
    Não da erro nenhum este codigo e guarda na pasta correcta mas nao guarda caminho nenhum na base de dados.

    Podiam ajudarm??
    cump
     
    Última edição pelo moderador: 4 de Abril de 2008
  2. P2mb2

    P2mb2 Power Member

    Faz batota :D

    Usa o endereço e adiciona só o nome da imagem no fim.... Isto é, a não ser que isto seja para vários hosts (dinamico) podes simplestemente meter:

    Código:
    String insert = "http://oteudominio.com/imagens"+ Upload1.FileName;
    SqlCommand cmd2 = new SqlCommand("INSERT INTO estrategias (imagem) VALUES '" + insert  + "'", cn);
    Fica só o alerta, não uses o nome directo da imagem, porque corres o risco de upar 2 imagens com o mm nome e arranjar conflitos depois... trata o FileName com um random kklker tipo:

    Código:
    Random RandomClass = new Random();
    int RandomNumber = RandomClass.Next(0, 1000000);
    String NomeFinal = RandomNumber + Upload1.FileName;
    assim passas a usar o NomeFinal... e garantes que não tens duplicações quando fazes upload independentemente do nome.
     
  3. p3dro

    p3dro Power Member

    Falta-te prencher o parâmetro "@imagem"
    PHP:
    SqlCommand cmd2 = new SqlCommand("INSERT INTO estrategias (imagem) VALUES (@imagem)"cn);
    cn.Open();
    cmd2.ExecuteNonQuery();
    cn.Close()
    Constróis o comando, abres a ligação, executas o comando, mas nunca chegas a atribuir o valor ao @imagem :)

    Falta-te isto, por ex:
    PHP:
    cmd2.Parameters.AddWithValue("@imagem"Upload1.FileName);
     
  4. ButterflyEffect

    ButterflyEffect Power Member


    ja coloquei e dame este erro

    System.Data.SqlClient.SqlException: Operand type clash: nvarchar is incompatible with image at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe) at System.Data.SqlClient.SqlCommand.ExecuteNonQuery() at Gestao_estrategias.Button2_Click(Object sender, EventArgs e) in c:\Documents and Settings\João\Os meus documentos\Prototipo\Gestao_estrategias.aspx.cs:line 63 ._ctl0_Menu1_0 { background-color:white;visibility:hidden;display:none;position:absolute;left:0px;top:0px; } ._ctl0_Menu1_1 { color:Teal;font-family:Verdana;font-size:0.8em;font-weight:bold;text-decoration:none; } ._ctl0_Menu1_2 { width:13px;height:28px;font-weight:bold;font-size:0.8em;font-family:Verdana;color:Teal;border-style:Outset;border-color:PaleTurquoise;background-color:#E3FFFF; } ._ctl0_Menu1_3 { } ._ctl0_Menu1_4 { background-color:#E3FFFF;padding:2px 5px 2px 5px; } ._ctl0_Menu1_5 { } ._ctl0_Menu1_6 { padding:2px 5px 2px 5px; } ._ctl0_Menu1_7 { background-color:#E3FFFF; } ._ctl0_Menu1_8 { } ._ctl0_Menu1_9 { background-color:#5D7B9D; } ._ctl0_Menu1_10 { color:White; } ._ctl0_Menu1_11 { color:White;background-color:Teal; } ._ctl0_Menu1_12 { color:MediumAquamarine; } ._ctl0_Menu1_13 { color:MediumAquamarine; }
     
  5. p3dro

    p3dro Power Member

    Deves ter o campo "imagem" com um tipo Image, nesse caso não poderá ser guardado como no exemplo que te dei, visto que o Upload1.FileName retorna um nvarchar
     
  6. ButterflyEffect

    ButterflyEffect Power Member

    para est codigo campo imagem era de k tipo?
     

Partilhar esta Página