Я делаю пейджинговые данные, используя ObjectDataSource
, и у меня есть следующий метод:
public int GetNumberOfArticles(string employeeIds)
{
System.Data.DataTable dataTable;
System.Data.SqlClient.SqlDataAdapter dataAdapter;
System.Data.SqlClient.SqlCommand command;
int numberOfArticles = 0;
command = new System.Data.SqlClient.SqlCommand();
command.Connection = Classes.Database.SQLServer.SqlConnection;
command.CommandText = @"SELECT COUNT(*)
FROM
[Articles]
WHERE
[Articles].[EmployeeID] IN (@EmployeeIds)";
command.Parameters.AddWithValue("@EmployeeIds", employeeIds);
numberOfArticles = (int)command.ExecuteScalar();
return numberOfArticles;
}
EmployeeID является целым числом, и поэтому все, что я помещаю в employeeIds
, будет преобразовано в целое число. Однако, поскольку я использую ключевое слово IN
, очевидно, что я хочу заменить employeeIds
списком идентификаторов, разделенных запятыми:
1, 2, 3
Но когда я заменяю строку:
command.Parameters.AddWithValue("@EmployeeIds", employeeIds);
с чем-то вроде:
command.Parameters.AddWithValue("@EmployeeIds", "1, 2, 3");
Я получил исключение, потому что я указал строку, а EmployeeIds
- целое число. Итак, как мне это сделать?
спасибо.
Edit:
Из ответов я понимаю, что это должно быть сделано вручную, однако класс, который содержит этот метод, будет автоматически создан ObjectDataSource
. Так как же я могу предоставить значения employeeIds
во время выполнения?