2015-10-29 3 views
0

Он может выбирать данные из мс-доступа и отображать gridview, но не может обновить тип поля Attachment.Невозможно обновить вложение типа поля MS Access

string ConnStr = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\500.accdb;Jet OLEDB:Database Password="; 

using (OleDbConnection MyConn = new OleDbConnection(ConnStr)) 
{ 
    MyConn.Open(); 
    var StrCmd = "UPDATE ข้อมูลรถ SET รูปรถ = @p2 WHERE ลำดับ = @p1"; 
    OleDbCommand oldcommand = new OleDbCommand(StrCmd, MyConn); 
    byte[] pic = File.ReadAllBytes(@"D:\test.png"); 

    oldcommand.CommandType = CommandType.Text; 
    oldcommand.CommandText = StrCmd; 
    oldcommand.Parameters.AddWithValue("@p2", pic); 
    oldcommand.Parameters.AddWithValue("@p1", "1"); 

    try 
    { 
     oldcommand.ExecuteNonQuery(); 
    } 
    catch (Exception ex) 
    { 

    } 
} 

Б Код

var StrCmd = "UPDATE ข้อมูลรถ SET สี = @p2 WHERE ลำดับ = @p1"; 

это может обновлять другой field.but только รูป รถ поле не может обновить.

используйте код

var StrCmd = "UPDATE ข้อมูลรถ SET รูปรถ.Value = @p2 WHERE ลำดับ.Value = @p1"; 

не может выполнить и ошибки >> «Нет значения приведены для одного или нескольких требуемых параметров.»

enter image description here enter image description here

ответ

0

Сначала необходимо определить первичный ключ value для столбца. Затем измените запрос к следующему:

var StrCmd = "UPDATE ข้อมูลรถ SET รูปรถ.Value = @p2 WHERE ลำดับ.Value = @p1"; 

Далее чтение здесь Using multivalued fields in queries

0

Попробуйте это:

var StrCmd = "UPDATE ข้อมูลรถ SET รูปรถ.Value = @p2 WHERE ลำดับ.Value = @p1"; 
Смежные вопросы