Такая простая задача: Как сохранить байт [] в Access 2010? (Поиск в Интернете в течение всего дня.)Байт магазина [] в Access 2010
Я должен использовать «поле вложения» в доступе 2010, потому что, насколько я могу видеть, нет другого возможного поля (varBinary, Image, ..) ,
Я попробовал: (ConvertImageToByte возвращает байт [])
Cmd.CommandText = "UPDATE Clubs SET Field1 = @File WHERE Name = @Name";
OleDbParameter para = new OleDbParameter("@File", OleDbType.VarBinary);
para.Value = ConvertImageToByte(Logo);
Cmd.ExecuteNonQuery();
Исключение: "An UPDATE или DELETE запрос не может содержать многозначное поле."
Я пробовал:
DBEngine dbe = new DBEngine();
Database db = dbe.OpenDatabase("database.accdb", false, false, "");
String Command = "SELECT * FROM Clubs";
Recordset rs = db.OpenRecordset(Command, RecordsetTypeEnum.dbOpenDynaset, 0, LockTypeEnum.dbOptimistic);
rs.MoveFirst();
rs.Edit();
Recordset2 rs2 = (Recordset2)rs.Fields["Field1"].Value;
rs2.AddNew();
Field2 f2 = (Field2)rs2.Fields["FileData"];
f2.LoadFromFile("file.png");
rs2._30_Update();
rs2.Close();
rs._30_Update();
rs.Close();
Это работает, но файл находится в первой строке Tabel все время, и я не могу понять, как получить нужную строку. Если я попытаюсь добавить предложение WHERE к оператору SELECT, то получите «Слишком мало параметров. Ожидаемое 2.» исключение.
Если кто-нибудь знает путь к рассказу моего байта [] (или изображение) в базу данных, вытащите его снова, пожалуйста, дайте мне знать!
Пожалуйста, не дайте мне ссылки на:
http://www.mikesdotnetting.com/Article/123/Storing-Files-and-Images-in-Access-with-ASP.NET
http://www.sitepoint.com/forums/showthread.php?t=666928
Programmatically managing Microsoft Access Attachment-typed field with .NET
Спасибо за помощь.
Если все остальное терпит неудачу, вы всегда можете кодировать данные самостоятельно и сохраните его как строку. Вы можете проанализировать свои байты в Hex, разграничить их для хранения, а затем передать их методу, чтобы исключить их избыточность retreval. Это было бы очень взломанное, раздутое решение, но это сработало бы. С другой стороны, не делайте этого. =) –
Спасибо JonH, но есть несколько причин для меня иметь только один файл со всей информацией, так, например, нужно отправить этот единственный файл другим людям. – Gpx
Любите свой комментарий Джордж! Мысль об этом, но, как вы говорите, не сделаете этого. – Gpx