Ошибка «Ссылка на объект не установлена ​​на экземпляр объекта» при попытке загрузить изображение в базу данных - PullRequest
0 голосов
/ 15 июня 2011

Я пытаюсь загрузить изображение в базу данных SQL, используя C #.Я нашел код с другого сайта, который отлично работал в тестовом проекте.Но когда я скопировал и вставил код и вставил его в свой реальный проект, он дает мне ошибку «Ссылка на объект не установлена ​​на экземпляр объекта».Это не имеет смысла для меня, потому что это работало просто отлично в тестовом проекте.Код выглядит следующим образом ...

protected void btnAddDevice_Click(object sender, EventArgs e)
{
    byte[] myimage = new byte[FileUpload1.PostedFile.ContentLength];
    HttpPostedFile Image = FileUpload1.PostedFile;
    Image.InputStream.Read(myimage, 0, (int)FileUpload1.PostedFile.ContentLength);
    SqlConnection myConnection = new SqlConnection(cnString);
    SqlCommand storeimage = new SqlCommand("insert into ImageTable (img,description,width,height) values(" + "@image,'Description',@imagesize,@imageheight)", myConnection);
    storeimage.Parameters.Add("@image", SqlDbType.Image, myimage.Length).Value = myimage;
    System.Drawing.Image img = System.Drawing.Image.FromStream(FileUpload1.PostedFile.InputStream);
    storeimage.Parameters.Add("@imagesize", SqlDbType.BigInt, 99999).Value = img.Width;
    storeimage.Parameters.Add("@imageheight", SqlDbType.BigInt, 99999).Value = img.Height;
    myConnection.Open();
    storeimage.ExecuteNonQuery();
    myConnection.Close();
}

Я получаю сообщение об ошибке в первой строке внутри метода при установке байта.Я искал везде и пробовал много разных вещей, но я понятия не имею, почему я получаю эту ошибку.Любая помощь будет высоко ценится.

Ответы [ 2 ]

0 голосов
/ 15 июня 2011

Возможная проблема:

Вы читаете с HttpPostedFile.InputStream дважды без сброса позиции.

0 голосов
/ 15 июня 2011

Поставьте точку останова на первой строке и посмотрите на переменные. Один из них будет нулевым, когда вы ожидаете значение.

Скорее всего FileUpload1.PostedFile имеет значение null. Убедитесь, что файл указан, прежде чем пытаться прочитать его байты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...