Пытаюсь научиться вставлять картинки в базу (c#, odbc,mysql), пишу такой код:
OpenFileDialog openFileDialog1 = new OpenFileDialog();
if(openFileDialog1.ShowDialog() == DialogResult.OK)
{
if((myStream = openFileDialog1.OpenFile())!= null);
}
byte[] buf = new byte[myStream.Length];
myStream.Read(buf, 0, (int)myStream.Length);
myStream.Close();
OdbcConnection sqlConnection1 = new OdbcConnection(MyConString);
String insertCmd = "INSERT INTO imagetest (image) (@pic)";
OdbcCommand myCommand = new OdbcCommand(insertCmd, sqlConnection1);
myCommand.Parameters.Add(new OdbcParameter("@pic", OdbcType.Image));
myCommand.Parameters["@pic"].Value = buf;
myCommand.Connection.Open();
myCommand.ExecuteNonQuery();
myCommand.Connection.Close();
Выдает ошибку:
System.Data.Odbc.OdbcException: ERROR [42000] [MySQL][ODBC 5.1 Driver][mysqld-5.0.45-community-nt-log]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@pic)' at line 1
в System.Data.Odbc.OdbcConnection.HandleError(OdbcHandle hrHandle, RetCode retcode)
в System.Data.Odbc.OdbcCommand.ExecuteReaderObject(CommandBehavior behavior, String method, Boolean needReader, Object[] methodArguments, SQL_API odbcApiMethod)
в System.Data.Odbc.OdbcCommand.ExecuteReaderObject(CommandBehavior behavior, String method, Boolean needReader)
в System.Data.Odbc.OdbcCommand.ExecuteNonQuery()
Если меняю "INSERT INTO imagetest (image) (@pic)"; на "INSERT INTO imagetest (text) (‘Простой текст’)";
То все проходит без ошибок, нужный текст в базе появляется, подскажите что делаю не так?
Примечание:
Зачем ODBC, если есть родной MySQL .Net Connector
В том то и дело нужен именно он.
Примечание:
PetSerA
Вот уж гадость какая, спасибо, буду думать и искать дальше.
RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.
Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.
Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.