2016-02-29 89 views
0

我正在尝试使用DataGridView将我的数据库数据显示到我的表单中。从SQL Server 2012中填充DataGridView

当我在我的代码运行调试器,它击中

da -> Fill(data); 

线它抛出一个异常后。我以前使用过类似的代码,但数据库是在MySQL中,而不是SQL服务器。我不确定我做错了什么。下面是我使用

SqlCommand^ myCommand = gcnew SqlCommand("SELECT * FROM MyDatabase ;", myCon); 

try{ 
    SqlDataAdapter^da = gcnew SqlDataAdapter(); 
    da -> SelectCommand = myCommand; 
    DataTable^ data = gcnew DataTable(); 
    da -> Fill(data); 
    BindingSource^ bSource = gcnew BindingSource(); 

    bSource -> DataSource = data; 
    dataCustomer -> DataSource = bSource; 
    da -> Update(data); 
} 
catch(Exception^ex){ 
    MessageBox::Show("Broke"); 
} 
+0

什么是例外?同样在SQL Server中,您倾向于查询表,而不是SQL Server所说的包含表的数据库。 – cameront

+0

引发的异常是“289”附近的语法错误。我是SQL Server的新手,并将数据库链接到前端项目。所以我想我只是试图在DataGridView中显示单个表数据。在使用MYSQL之前,我已经完成了这个操作,并且我使用了有关代码的细微变化。 – Doe

+0

这与您在另一个线程上提出的其他查询有关 - “SELECT * FROM CSC 289.Customer WHERE Customer_ID ='” – cameront

回答

0

这是从在这之前你在另一个线程上提出了与你的其他查询代码error C2664: 'System::String ^System::Data::Common::DbDataReader::GetString(int)' : cannot convert parameter 1 from 'const char [12]' to 'int'

"SELECT * FROM CSC 289.Customer WHERE Customer_ID = '" 

这是不是一个有效的TSQL语句,你可以”模式名称中没有空格。我想你想的东西像

SELECT * FROM [CSC 289].Customer 

SELECT * FROM [CSC 289].dbo.Customer 

真的取决于你的数据库结构。

+0

噢好的。当我创建数据库时,我并不感谢间距。所以我只需要把CSC 289放在[]中。非常感谢,现在效果很好。 – Doe