Преобразование SqlDataSource в DataTable и DataView - PullRequest
7 голосов
/ 26 февраля 2012

У меня есть следующее 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 и прочитать столбец из него.

Так как это сделать?

Ответы [ 2 ]

15 голосов
/ 16 ноября 2012

Позвольте мне сказать, что у вас есть SqlDataSource, названный SqlDataSource1

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

Теперь вы можете легко прочитать столбец из этой dt (DataTable), например:

int columnNumber = 0;
for(int i=0;i<dt.Rows.Count;i++)
{
    MessageBox.Show(dt.Rows[i][columnNumber].ToString());
}

Ссылка

6 голосов
/ 26 февраля 2012

SqlDataSource имеет метод Select, который вы можете вызвать, чтобы получить DataView от вашего SqlDataSource - см. Документацию MSDN по этому .

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

DataTable table = view.ToTable();

.ищу ??

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...