2013-07-05 3 views
1

у меня есть этот код:должен объявить переменную скаляр

private void btGuardar_Click(object sender, EventArgs e) 
     { 
      if (txDescrip.Text.Trim().Equals("") == false && txPath.Text.Trim().Equals("") == false) 
      { 
       try 
       { 
        byte[] imgData = getMyFileBytes(txPath.Text); 
        //Server connection 
        OleDbConnection connection = new OleDbConnection(strcx); 
        String q = "INSERT INTO MisImagenes (Id,CustomImage) values(@MyPath, @ImageData)"; 
        //Initialize sql command object for insert 
        OleDbCommand command = new OleDbCommand(q, connection); 
        //We are passing original image path and image byte data as sql parameters 
        OleDbParameter pMyPath = new OleDbParameter("@MyPath", (object)txPath.Text); 
        OleDbParameter pImgData = new OleDbParameter("@ImageData", (object)imgData); 
        command.Parameters.Add(pMyPath); 
        command.Parameters.Add(pImgData); 
        //Open connection and execute insert query 
        connection.Open(); 
        command.ExecuteNonQuery(); 
        connection.Close(); 
        Mensaje.aviso("Imagen Guardada :)"); 
        //Limpiamos 
        clearAlta(); 
       } 
       catch (Exception exc) 
       { 
        Mensaje.aviso("Something went wrong! :(" + exc.Message); 
       } 
      } 
     } 

, когда я выполнить это говорит: «Необходимо объявить скалярную переменную„@MyPath“.» ... любая помощь? пожалуйста, спасибо.

Я просто пытаюсь сохранить изображение в своем sqserver db, выбрав описание пути и идентификатора для изображения. и я просто получаю эту разочаровывающую ошибку

+0

Я знаю, что сейчас это то, что вы просили, но не могли бы вы изменить '"! Что-то пошло не так :(„' 'с“ Что-то пошло не так! :("'? – Lamak

ответ

0

вы должны использовать '?' вместо имен параметров в OLEDB запросов

INSERT INTO MisImagenes (Id,CustomImage) values(?, ?) 

подобный вопрос и ответ: OleDbCommand parameters order and priority

+0

спасибо, что разрешите мою проблему – Chris

Смежные вопросы