我正在尝试使用存储过程在我的 WinFomrs 应用程序中搜索用户。我有这个代码:
Regex regPattern = new Regex(searchTextBox.Text);
dataGridView1.DataSource = users.GetAllUsers()
.Where<users>(item => regPattern.IsMatch(item.FirstName))
.ToList<users>();`
但这不起作用,因为我GetAllUsers
的 DAL 中没有where
语句,因为我使用了存储过程而不是常规 SQL 语句,所以我该如何解决这个问题,伙计们?
这是我的 BAL:
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);