2012-02-23 47 views
2

我在我的SQL Server数据库中有一个名为NAMES的表。我想检索整个表,并把它变成一个数据集:C# - >从SQL Server 2008检索数据集

//get the connection string from web.config 
string connString = ConfigurationManager.ConnectionStrings["Platform"].ConnectionString; 
DataSet dataset = new DataSet(); 

using (SqlConnection conn = new SqlConnection(connString)) 
{ 
    SqlDataAdapter adapter = new SqlDataAdapter();     
    adapter.SelectCommand = new SqlCommand("NAMES", conn); 
    adapter.Fill(dataset); 
} 

这虽然抛出一个SQL例外,

“无效的对象指名道姓” ......

我究竟做错了什么?

+2

adapter.SelectCommand =新的SqlCommand( “选择* [名称]”,康涅狄格州); – 2012-02-23 12:09:56

回答

7

打开连接!!!!!!

//get the connection string from web.config 
string connString = ConfigurationManager .ConnectionStrings["Platform"].ConnectionString; 
DataSet dataset = new DataSet(); 

using (SqlConnection conn = new SqlConnection(connString)) 
{ 
    SqlDataAdapter adapter = new SqlDataAdapter();     
    adapter.SelectCommand = new SqlCommand("select * from [NAMES]", conn); 
    conn.Open(); 
    adapter.Fill(dataset); 
} 
+0

打开连接肯定会有帮助,但我不认为这是你会看到的例外。无效的对象名称肯定表明它已经到达数据库。我假设上面的代码是一个减少版本,只是意外地省略了数据库开放。 – Chris 2012-02-23 12:16:38

+0

你可以通过SQL管理工作室访问数据库来检查这个表是否真的存在 – 2012-02-23 12:19:48

+0

+1,谢谢你得到我的投票 – 2012-02-23 13:28:18

7

您没有将实际的SQL选择命令传递给SqlCommand构造函数。

+0

如果我将“NAMES”更改为“SELECT * FROM NAMES”,我仍然得到相同的错误 – user559142 2012-02-23 12:12:37

+1

您是否尝试了[NAMES]而不是(按照@ AmenAyach的建议)?名称是ODBC保留关键字,因此在解析SQL时会引起潜在的混淆,除非您正确转义它。 – Chris 2012-02-23 12:19:09

0

首先检查select * from dbo。[Names]是否在urql中正在运行?

 string connString = ConfigurationManager .ConnectionStrings["Platform"].ConnectionString; 
     Dataset ds=new Dataset(); 
     SqlConnection con = new Sqlconnection(connString); 
     SqlDataAdapter adapter = new SqlDataAdapter("Select * from dbo.[Names]",con); 
     adapter.Fill(ds);