2015-05-08 4 views
2
#pragma once 
using namespace System; 
using namespace MySql::Data::MySqlClient; 

ref class Connect { 

public: 

    static String^ query=L"datasource=localhost;port=3306;username=root;password=test123"; 
    static MySqlConnection^ conDB = gcnew MySqlConnection(query); 
    static MySqlCommand^ cmdDatabase = gcnew MySqlCommand("SELECT * FROM 199246-4444.table;", conDB); 
    static MySqlDataReader^ myReader; 

}; 

Привет, проблема в том, что «gcnew MySqlCommand (« SELECT * FROM 199246-4444.table; », conDatabase); не работает. Я не могу выбрать из своей базы данных, и я считаю, что это связано с тем, что между 199246 и 4444 существует ошибка, которая вызывает ошибку. Как это исправить? Я попытался найти ту же или по крайней мере аналогичную проблему в Stackoverflow, но я не могу найти никого, ни Google. Я не хочу менять имя базы данных.Приложение C++/CLI Form - Невозможно выбрать из базы данных

Ошибки я получаю:

«У Вас есть ошибка в вашем SQL синтаксиса, обратитесь к руководству, что соответствует версии сервера MySQL для правильного синтаксиса, чтобы использовать вблизи«199246-4444. таблица 'в строке 1 "

Когда я пытаюсь использовать базу данных с текстом, она полностью работает. Однако имя базы данных «199246-4444» не работает.

Update:

Я знаю, что я написал, что я не мог подключиться к базе данных. Я хочу написать, что я не мог выбрать из базы данных. Это зафиксировал его:

static MySqlCommand^ cmdDatabase = gcnew MySqlCommand("SELECT * FROM `199246-4444`.`table`;", conDB); 
+0

Вы пробовали использовать схему с '\' ', например' '' 199246-4444 \ '.table'? – mathielo

+0

Просто обратите внимание: ваш код C++/CLI - на самом деле это не C++. – PaulMcKenzie

+0

Я редактировал заголовок – Awni

ответ

1

Попробуйте так:

static MySqlCommand^ cmdDatabase = gcnew MySqlCommand("SELECT * FROM `199246-4444`.`table`;", conDB); 

т.е. поставить имя базы данных 199246-4444 в обратные кавычки ``.

+2

Спасибо, что исправил это! – Awni

+1

@ Давид: - Добро пожаловать! –

1

Перед dash, у вас есть имя базы данных. Укажите базу данных в connection string и удалите ее из запроса.

static String^ query=L"datasource=localhost;Database=199246-4444;port=3306;username=root;password=test123"; 
+0

Спасибо! Я собираюсь использовать этот запрос с этого момента. Не могу поверить, что я не указал базу данных. – Awni

Смежные вопросы