Что мне использовать вместо e.Values.add(... для ListViewEditEventArgs для загрузки изображения

StackOverflow https://stackoverflow.com/questions/250528

Вопрос

я могу загружать изображения в базу данных с помощью linq и элемента управления listview при обращении к методу e.Values для ListViewInsertEventArgs, но в ListViewEditEventArgs такого метода нет, так что я могу использовать для достижения тех же результатов?

вот мой код для вставки:

защищенный недействительный проект photoslist_iteminserting(отправитель объекта, ListViewInsertEventArgs e)

{

Файловая загрузка верхнего изображения = (FileUpload)ProjectPhotosList.insertItem.FindControl("Верхнее изображение");

Ярлык fileuploadlbl = (Ярлык)ProjectPhotosList.insertItem.FindControl("fileuploadlbl");

    byte[] img = null;
    if (uplImage.HasFile || !uplImage.FileName.ToLower().EndsWith(".jpg"))
    {
        try
        {
            img = new byte[uplImage.PostedFile.ContentLength];
            uplImage.PostedFile.InputStream.Read(img, 0, img.Length);
        }
        catch
        {
            fileuploadlbl.Text = "unable to upload " + uplImage.FileName.ToString();
        }
    }
    if (img == null)
    {
        e.Cancel = true;
        fileuploadlbl.Text = "Please choose a file to upload";
    }

    try
    {
        e.Values.Add("ProjectPhoto", new System.Data.Linq.Binary(img));
        fileuploadlbl.Text = "File Upload Successful";
    }
    catch
    {
        fileuploadlbl.Text = "File Upload Failed, please try again";
    }
}
Это было полезно?

Решение

итак, я решил проблему!Мне просто пришлось подойти к этому немного по-другому:

это важный код:

int mykey = int.Parse(ProjectPhotosList.DataKeys[например,ItemIndex].Value.toString());

это всего лишь простой способ получить значение primarykey выбранной строки.Я нашел сообщение о загрузке PDF-файлов в базу данных и решил основать на этом остальной свой код.Итак, вот полный код:

защищенный недействительный проект photoslist_itemupdating(отправитель объекта, параметры ListViewUpdateEventArgs e)

{

Загружаемый файл myFile = (Загружаемый файл)ProjectPhotosList.EditItem.FindControl("Загружаемое изображение");

    TextBox myCaption = (TextBox)ProjectPhotosList.EditItem.FindControl("ProjectPhotoCaptionTextBox");

    int mykey = int.Parse(ProjectPhotosList.DataKeys[e.ItemIndex].Value.ToString());

    if (myFile.HasFile)
    {

        //Get the posted file
        Stream fileDataStream = myFile.PostedFile.InputStream;

        //Get length of file
        int fileLength = myFile.PostedFile.ContentLength;

        //Create a byte array with file length
        byte[] fileData = new byte[fileLength];

        //Read the stream into the byte array
        fileDataStream.Read(fileData, 0, fileLength);

        //get the file type
        string fileType = myFile.PostedFile.ContentType;

        //Open Connection
        PHJamesDataContext db = new PHJamesDataContext();
        //Find the Right Row
        PHJProjectPhoto Newphoto = (from p in db.PHJProjectPhotos
                                    where p.ProjectPhotoId == mykey
                                    select p).Single<PHJProjectPhoto>();


        Newphoto.ProjectPhoto = fileData;

        db.SubmitChanges();
    }
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top