Я пытаюсь использовать хранимую процедуру для поиска пользователей в моем приложении WinFomrs. У меня есть этот код:
Regex regPattern = new Regex(searchTextBox.Text);
dataGridView1.DataSource = users.GetAllUsers()
.Where<users>(item => regPattern.IsMatch(item.FirstName))
.ToList<users>();`
Но это не работает, потому что у моего GetAllUsers
в моем DAL нет оператора where
, потому что я использовал хранимую процедуру вместо обычного оператора SQL, так как я могу это исправить, ребята?
Вот мой БАЛ:
public List<GetAllUsers> GetAllUsers()
{
List<GetAllUsers> UserDatails = new List<GetAllUsers>();
try
{
CacheConnection.ClearParameters();
dataTable = CacheConnection.GetDataTable("AGSP.Users_GetAllUsers2");
if (dataTable.Rows.Count != 0)
{
foreach (DataRow r in dataTable.Rows)
{
GetAllUsers oBo = new GetAllUsers();
Type myType = typeof(GetAllUsers);
System.Reflection.PropertyInfo[] properties = myType.GetProperties();
foreach (System.Reflection.PropertyInfo p in properties)
{
if (dataTable.Columns.Contains(p.Name))
{
if (ReferenceEquals(r[p.Name], DBNull.Value))
{
if (p.PropertyType.ToString() == "System.DateTime")
{
p.SetValue(oBo, DateTime.Now, null);
}
else if (p.PropertyType.ToString() == "System.String")
{
p.SetValue(oBo, "", null);
}
}
else
{
p.SetValue(oBo, r[p.Name], null);
}
}
}
UserDatails.Add(oBo);
}
return UserDatails;
}
}
catch (Exception ex)
{
throw ex;
}
return UserDatails;
}
Кстати, я не использую SQL, я использую язык программирования Caché для своей базы данных, но в нем также есть хранимая процедура.
Я исправил это, ребята
что я сделал в моей кнопке поиска, это
Regex regPattern = new Regex(searchTextBox.Text);
lstUsers.DataSource = users.GetAllUsersByUsername(searchTextBox.Text);
вместо этого
Regex regPattern = new Regex(searchTextBox.Text);
dataGridView1.DataSource = users.GetAllUsers()
.Where<users>(item => regPattern.IsMatch(item.FirstName))
.ToList<users>();`
А также
это то, что я сделал в моем DAL
public List<GetAllUsers> GetAllUsersByUsername(string username)
{
List<GetAllUsers> UserDatails = new List<GetAllUsers>();
try
{
CacheConnection.ClearParameters();
CacheConnection.AddParameter("UserName", username);