Вставка и получение изображения в базе данных Access 2007 из приложения C # - PullRequest
0 голосов
/ 27 августа 2011

Мне нужно вставить изображение в базу данных доступа, в которой есть столбец типа OLE Object Я попытался использовать следующий код, но он дает мне синтаксическую ошибку при вставке, но я уверен в названии таблицы и имени столбца, а значение imageContent не равно нулю

    System.Data.OleDb.OleDbConnection MyConnection;
    private void Insert_Customer_Load(object sender, EventArgs e)
    {
        string strConn = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Customer.accdb;Persist Security Info=True;Jet OLEDB:Database Password=123";
        MyConnection = new System.Data.OleDb.OleDbConnection(strConn);
    }

    private void InsertBtn_Click(object sender, EventArgs e)
    {
        System.Data.OleDb.OleDbCommand myCommand = new System.Data.OleDb.OleDbCommand();
        string sql = null;

        MyConnection.Open();
        myCommand.Connection = MyConnection;
        byte[] imageContent = File.ReadAllBytes(imagePathTxt.Text);
        sql = "INSERT INTO [Customer_Data] (Image) VALUES (@photo)";
        myCommand.CommandText = sql;
        OleDbParameter ph = new OleDbParameter("@photo", OleDbType.VarBinary);
        ph.Value = imageContent;
        ph.Size = imageContent.Length;
        myCommand.Parameters.Add(ph);
        myCommand.ExecuteNonQuery();
        MyConnection.Close();
    }

Тоже пробовал использовать? вместо @photo, но также возникло то же исключение.

Заранее спасибо

1 Ответ

2 голосов
/ 27 августа 2011

Я думаю, Image - зарезервированное слово, поэтому, возможно, вам следует использовать [Image] или, что лучше, переименовать столбец.(Кстати, вы уверены, что хотите хранить изображения в своей базе данных?)

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