2012-07-10 81 views
2

我试图用查询获取信息来ping我的SQL服务器,然后将该信息传递给DataGridView。虽然它不会显示在我的代码中,但我确实先打开了我的DBConnection,然后关闭它。我的代码如下所示:SQL C#交互不起作用

  using (SqlDataAdapter newDA = new SqlDataAdapter(query, DBConnection)) 
     { 
      DataTable Table = new DataTable(); 
      newDA.Fill(Table); 

      dgvOutput.DataSource = Table; 
     } 

我知道,查询和DBConnection的都工作,因为他们在节目中的一个类似的一部分工作,但由于某种原因,newDA似乎并没有越来越从任何数据数据库这里。当我将查询的值直接复制到Microsoft SQL Server Management Studio并运行它时,它会得到数据。有什么建议么?

+0

Web? Winforms? – 2012-07-10 20:56:50

+0

你能显示查询文本吗? – Steve 2012-07-10 21:03:40

+0

“我确实先打开我的DBConnection,然后关闭它。” SqlTableAdapters处理关闭和打开连接... http://stackoverflow.com/a/956469/1449777 – Tom 2012-07-10 21:08:57

回答

3
string connectionString = YOUR_NAME_SPACE.Properties.Settings.Default.CONNECTION_STRING; 
      SqlConnection con = new SqlConnection(connectionString); 
      DataTable DT = new DataTable(); 
      con.Open(); 

      SqlDataAdapter DA = new SqlDataAdapter(YOUR_QUERYQUERY, connectionString); 
      DA.Fill(DT); 
      con.Close(); 
      return DT; 

现在把这段代码。在你的项目中几乎没有变化。 我嘻嘻,你会得到什么改变。

您将拥有DataTable。这包含了所有的内容。你可以很容易地把内容放到datagrid视图中。这很容易。

+0

这绝对有助于我指出正确的方向。 – Kulahan 2012-07-17 20:18:36

0

好吧,我盯着屏幕了几个小时后,多,我意识到我错过:

dgvOutput.AutoGenerateColumns = true; 

一旦我进入了这一点,一切工作就好了。