Я написал следующий код для хранения изображений в БД SQL server 2008
I have written a following code to store images in sql server 2008 db, but this code throw an exception of "object reference not set to an instance of an object"
Что я уже пробовал:
создать таблицу DemoTable
(
id int primary key identity (1,1),
que изображение,
изображения параметр1 ,
изображения параметр2 ,
изображения параметр3 ,
изображение opt4,
Анс варчар (100),
sub varchar(100)
)
===========================
&ЛТ;%@ заголовок страницы="" язык="C#" и masterpagefile вместе="~/админ/AdminMaster.мастер" AutoEventWireup значение=значение"true" CodeFile="изображений.aspx-файл.КС" наследует="Admin_images" %&ГТ;
&ЛТ;АСП:контента ID="Content1" атрибутом ContentPlaceHolderID="объекту contentplaceholder1" атрибут runat="сервер"и GT;
< script language= "javascript">
функция ShowpImagePreview1 (вход) {
if (input.файлы & amp; & amp; входные данные.файлы[0]) {
var reader = новый файловый редактор();
reader.onload = функция (e) {
$('#imgque').буква attr('Url_изображения', электронная.цель.результат);
}
читатель.readAsDataURL(вход.файлы[0]);
}
}
< / script>
&ЛТ;как ASP:scriptmanager при ИД="ScriptManager1" атрибут runat="сервер"и GT;
<asp:UpdatePanel ID= "UpdatePanel1" runat= "server">
< contenttemplate>
&ЛТ;как ASP:dropdownlist с ИД="ddlsub" атрибут runat="сервер" CssClass="форма контроля"и GT;
< asp:ListItem & gt;opt1
< asp:ListItem & gt;opt2
< asp:ListItem & gt;opt3
< asp:ListItem & gt;opt4
<asp: Button ID= "btnsubmit" runat=" server "Text=" Submit"
onclick= "btnsubmit_Click" />
&ЛТ;АСП:метка идентификатор="lblmsg" атрибут runat="сервер"и GT;
============
использование системы;
использование системы.Коллекции.Общий;
использование System. Linq;
использование системы.Сеть;
используя системы.Веб.ИП;
используя системы.Веб.Пользовательского интерфейса.WebControls;
использование системы.Конфигурация;
используя системы.Сведения;
используя системы.Данных.Поставщики sqlclient;
использование системы.ИО;
общественный разделяемого класса Admin_images : система.Веб.Пользовательского интерфейса.Страницы
{
SqlConnection con = new SqlConnection(ConfigurationManager.AppSettings ["Con1"].Метод toString());
SqlCommand com;
DataSet ds = новый набор данных();
Адаптер SqlDataAdapter;
Читатель SqlDataReader;
общественного недействительными подключения()
{
против.Закрывать();
if (con. State == ConnectionState.Закрытый)
{
против.Открыть();
}
}
общественного недействительными закрыт()
{
if (con. State == ConnectionState.Открыть)
{
против.Закрывать();
}
}
protected void Page_Load(отправитель объекта, EventArgs e)
{
пробовать
{
LoadSubject();
}
поймать (исключение РП)
{
Ответ.Перенаправление (er. сообщение);
}
}
общественного недействительными LoadSubject()
{
пробовать
{
Select sel = новый выбор();
DataSet subds = sel.SubjectDistinct();
if (subds.Таблицы[0].Строк.Граф > 0)
{
ddlsub.DataSource = subds.Таблицы[0];
ddlsub.DataTextField = " тема";
ddlsub.DataValueField = " тема";
ddlsub.Привязку();
}
}
поймать (исключение РП)
{
Ответ.Написать (Эр. сообщение);
}
}
общественная int addimg(байт[] кы,байт[] параметр1,байт[] параметр2,байт[] параметр3,байт[] opt4,строку ANS,замена и)
{
int a;
Подключить();
ком = новая команда sqlcommand("вставить в DemoTable ([кы],[параметр1],[параметр2],[параметр3],[opt4],[Анс],[суб]) значения(@ке,@параметр1,@параметр2,@параметр3,@opt4,@Анс@суб)", кон);
ком.Параметры.AddWithValue ("@que", que);
ком.Параметры.AddWithValue("@параметр1", параметр1);
ком.Параметры.AddWithValue("@параметр2", параметр2);
ком.Параметры.AddWithValue ("@opt3", opt3);
ком.Параметры.AddWithValue ("@opt4", opt4);
ком.Параметры.AddWithValue ("@ans", ans);
ком.Параметры.AddWithValue ("@sub", sub);
a = com.Метод executenonquery();
Закрытый();
вернуть;
бросить новое исключение notimplementedexception();
}
охраняемых недействительными btnupload_Click(объект отправителя, EventArgs в электронной)
{
пробовать
{
}
поймать (исключение РП)
{
Ответ.Написать (Эр. сообщение);
}
}
охраняемых недействительными btnsubmit_Click(объект отправителя, EventArgs в электронной)
{
пробовать
{
// Stream fq = fuque.PostedFile.Входной поток;
//BinaryReader br = новый BinaryReader(fq);
//Byte[] rawq = br. ReadBytes ((Int32)fq. Length);
//Поток Ф1 = fuque.PostedFile.Входной поток;
//BinaryReader br1 = новый BinaryReader(f1);
//Байт[] raw1 = спальня1.ReadBytes((int32)для Ф1.Длина);
// Поток f2 = fuque.PostedFile.Входной поток;
//BinaryReader br2 = новый BinaryReader(f2);
//Byte[] raw2 = br2. ReadBytes ((Int32)f2. Length);
// Поток f3 = fuque.PostedFile.Входной поток;
//BinaryReader br3 = новый BinaryReader(f3);
//Byte[] raw3 = br3. ReadBytes ((Int32)f3. Length);
// Поток f4 = fuque.PostedFile.Входной поток;
//BinaryReader br4 = новый BinaryReader(f4);
//Byte[] raw4 = br4. ReadBytes ((Int32)f4. Length);
FileStream fq = новый FileStream(fuque.PostedFile.Имя Файла, Файловый Режим.OpenOrCreate, FileAccess.Чтение и запись);
byte[] rawq = новый байт[fq.Длина];
fq. Read(rawq, 0, Convert.ToInt32 (fq.Length));
FileStream f1 = новый FileStream(fuopt1.PostedFile.Имя Файла, Файловый Режим.OpenOrCreate, FileAccess.Чтение и запись);
byte[] raw1 = новый байт[f1. Length];
f1. Read (raw1, 0, Convert.ToInt32 (F1. длина));
Файлового потока Ф2 = новый хранилище FileStream(fuopt2.PostedFile.Имя Файла, Файловый Режим.OpenOrCreate, FileAccess.Чтение и запись);
byte[] raw2 = новый байт[f2. Length];
f2. Read (raw2, 0, Convert.ToInt32(F2. Length));
Файлового потока Ф3 = новый хранилище FileStream(fuopt3.PostedFile.Имя Файла, Файловый Режим.OpenOrCreate, FileAccess.Чтение и запись);
byte[] raw3 = новый байт[f3. Length];
f3. Read (raw3, 0, Convert.ToInt32(F3. Length));
FileStream f4 = новый FileStream(fuopt4.PostedFile.Имя Файла, Файловый Режим.OpenOrCreate, FileAccess.Чтение и запись);
byte[] raw4 = новый байт[f4. Length];
f4. Read (raw4, 0, Convert.ToInt32(F4. Length));
int n = addimg(rawq, raw1, raw2, raw3, raw4, ddlopt.SelectedValue, ddlsub.Элемент.Ценность);
если (n == 1)
{
lblmsg.Text = " Q up";
}
}
catch (NullReferenceException ex)
{
lblmsg. Text= "использование процессора" + ex. Message;
}
поймать (исключение бывший)
{
lblmsg.Text = "использование процессора" + ex. сообщение;
}
}
}
CHill60
В дополнение к решению 1-Вы можете найти эту статью полезной Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]
F-ES Sitecore
Вы не думаете, что это может помочь, если вы скажете, какая строка из сотен строк, которые вы опубликовали, выдает ошибку?