2011-12-10 125 views
1

有人能告诉我如何从我的SQL Server数据库中获取列中的所有值吗?从SQL Server 2008数据库中选择列中的所有值?

我有具有以下结构的表格:

选出

  • SSN int(主键)
  • NAME varchar(20)
  • PROGRAM varchar(max)
  • PHOTO varchar(max)

我想从SSN列中检索所有值,并将它们存储在ASP.NET项目的整数数组中。

我使用的是Visual Studio 2010 Ultimate SP1 2010和SQL Server 2008 SP3。

回答

4
string yourConnectionString = "......"; 
List<int> allSSN = new List<int>(); 

string sqlStmt = "SELECT SSN FROM dbo.Elects"; 

using(SqlConnection conn = new SqlConnection(yourConnectionString) 
using(SqlCommand cmd = new SqlCommand(sqlStmt, conn)) 
{ 
    conn.Open(); 

    using(SqlDataReader rdr = cmd.ExecuteReader()) 
    { 
     while(rdr.Read()) 
     { 
      int ssn = rdr.GetInt32(0); 
      allSSN.Add(ssn); 
     } 

     rdr.Close(); 
    } 

    conn.Close(); 
} 

这段代码的最后,你把所有的List<int>SSN列值供你使用

+1

你不需要调用'Close()'; '使用'块确保资源关闭。 – Jacob

+1

@Jacob,不错,但我总是喜欢自己清理后不管。 –

+0

@Jacob:使用''确保了这一点 - 但我仍然想要明确地关闭读者和连接 - 这只是一个好习惯。 “使用”块只是我的“紧急备份” –

0

您还可以看看Dapper,这是对StackOverflow的网站上使用,并且是可作为NuGet包使用(搜索“Dapper dot net”)。

凭借小巧玲珑的,你可以使用以下方法来得到一个IEnumerable<int>

IEnumerable<int> allSSN; 

using (var connection = new SqlConnection(connectionString)) 
{ 
    connection.Open(); 
    allSSN = SqlMapper.Query<int>(connection, "SELECT SSN FROM dbo.Elects"); 
} 

作为我个人而言,这是我第一次以小巧玲珑的兜风;在此之前,我会根据@ marc_s的回答使用SqlCommandSqlDataReader,但我相信我将在未来的项目中使用Dapper。

相关问题