Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибка при добавлении пустого поля в Access 
:(
    Опции темы
headzero
Дата 12.12.2007, 12:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 265
Регистрация: 14.11.2006

Репутация: нет
Всего: 1



Уважаемые програмиисты. Помагайте. 
Вот моя функция, принимающая параметры контролов, и формирующая строку запроса
Код

public void InsertValue(string NameValue,string FirmaValue, string TypeValue, string ProtClassValue, string IspolnenieValue, string ObiemValue, string ColorValue, string CommentValue,byte[] img)
        {

            DBConnector dbcon = new DBConnector();
            string stroka = "INSERT INTO TOV(DetName,Firma,Type,ProtClass,Ispolnenie,Obiem,Color,Comment,Picture)VALUES(@DetName,@Firma,@Type,@ProtClass,@Ispolnenie,@Obiem,@Color,@Comment,@Picture)";
            OleDbCommand command = new OleDbCommand(stroka, dbcon.ConnectToDatabase());

            command.Parameters.Add("@DetName", OleDbType.LongVarChar);
            command.Parameters["@DetName"].Value = NameValue;

            command.Parameters.Add("@Firma", OleDbType.LongVarChar);
            command.Parameters["@Firma"].Value = FirmaValue;

            command.Parameters.Add("@Type", OleDbType.LongVarChar);
            command.Parameters["@Type"].Value = TypeValue;

            command.Parameters.Add("@ProtClass", OleDbType.LongVarChar);
            command.Parameters["@ProtClass"].Value = ProtClassValue;

            command.Parameters.Add("@Ispolnenie", OleDbType.LongVarChar);
            command.Parameters["@Ispolnenie"].Value = IspolnenieValue;

            command.Parameters.Add("@Obiem", OleDbType.LongVarChar);
            command.Parameters["@Obiem"].Value = ObiemValue;

            command.Parameters.Add("@Color", OleDbType.LongVarChar);
            command.Parameters["@Color"].Value = ColorValue;

            command.Parameters.Add("@Comment", OleDbType.LongVarChar);
            command.Parameters["@Comment"].Value = CommentValue;

            command.Parameters.Add("@Picture", OleDbType.LongVarBinary,img.Length); \\ На єтой строке ошибка.
            command.Parameters["@Picture"].IsNullable = true; \\ Думал дело в этой строке, но и с ней и без нее не работает
            command.Parameters["@Picture"].Value = img;
            command.ExecuteNonQuery();
  }



Последний параметр - массив байтов для добавления картинки. Если я добавляю какртинку, то все работает, а если нет, то возникает ошибка  Object reference not set to an instance of an object. В базе- поле для рисунка OLE и указано как необязательное. Так почему же исключение? Спасибо

Это сообщение отредактировал(а) headzero - 12.12.2007, 12:10


--------------------
Воображение важнее знания
                                                     (Алберт Эйнштейн)
PM MAIL   Вверх
1stain
Дата 12.12.2007, 13:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 486
Регистрация: 30.7.2007
Где: Киев - Харьков

Репутация: 5
Всего: 40



Код

command.Parameters.Add("@Picture", OleDbType.LongVarBinary, (img == null)? 0: img.Length); \\ Попробуй так



--------------------
Все знают, что это невозможно. Но вот приходит невежда, которому это неизвестно - он-то и делает открытие. (Albert Einstein)
user posted image
PM MAIL   Вверх
headzero
Дата 12.12.2007, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 265
Регистрация: 14.11.2006

Репутация: нет
Всего: 1



Попробывал, но появляется новая ошика Parameter @Picture has no defult value.

P.S Может поможет   smile Высшеуказанй метод вызывается у меня на уровне екземпляра класса из другого класса и  в последний параметр (img) передается  байтовый массив imgbuffer объявленный в вызывающем классе как  
Код
 private byte[] imgbuffer;  

А imgbuffer заполняется из openfiledialog'a так
Код

private void addimg_FileOk(object sender, CancelEventArgs e)
        {
            
            FileStream fs = new FileStream(addimg.FileName, FileMode.Open, FileAccess.Read, FileShare.Read);
            imgbuffer = new byte[fs.Length];
            fs.Read(imgbuffer, 0, (int)fs.Length);
           
        }



Кто забыл вопрос: если в поле для картинки не добавляется рисунок то возникает ошибка, а при добавлении все нормально. Спасибо


Это сообщение отредактировал(а) headzero - 12.12.2007, 13:40


--------------------
Воображение важнее знания
                                                     (Алберт Эйнштейн)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Базы данных под .NET | Следующая тема »


 




[ Время генерации скрипта: 0.2932 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.