将SqlDataSource转换为DataTable和DataView

我有以下SqlDataSource ,我想将其转换为DataView并从中读取一列:

 SELECT dbo.Divisions.DivisionShortcut, COUNT(DISTINCT dbo.UserQuiz.Username) AS [Number of Participants] FROM dbo.Divisions INNER JOIN dbo.employee ON dbo.Divisions.SapCode = dbo.employee.DivisionCode INNER JOIN dbo.UserQuiz ON dbo.employee.Username = dbo.UserQuiz.Username INNER JOIN dbo.Quiz ON dbo.UserQuiz.QuizID = dbo.Quiz.QuizID WHERE (dbo.Quiz.QuizID = @QuizID) GROUP BY dbo.Divisions.DivisionShortcut 

SqlDataSource允许用户输入测验的编号,它将检索该测验中的参与者总数。 我想将此SqlDataSource转换为DataTable并从中读取一列。

那怎么办呢?

假设您有一个名为SqlDataSource1的SqlDataSource

 DataSourceSelectArguments args = new DataSourceSelectArguments(); DataView view = (DataView)SqlDataSource1.Select(args); DataTable dt = view.ToTable(); 

现在,您可以从此dt(DataTable)轻松读取列,例如

 int columnNumber = 0; for(int i=0;i 

参考

SqlDataSource有一个Select方法,您可以调用该方法从SqlDataSource获取DataView – 请参阅MSDN文档 。

 SqlDataSource dataSource = new SqlDataSource(connectionString, selectSql); DataView view = (DataView)dataSource.Select(args); DataTable table = view.ToTable(); 

这就是你要找的??