【发布时间】:2019-07-07 07:51:31
【问题描述】:
我有一张表格,我正在尝试在其中进行搜索,它适用于所有内容,除了使用 dropdownList 添加的表格。
在数据库中它们被保存为 tinyint,所以当我按数字搜索时,它可以工作,但我想按单词搜索。
例如我使用这段代码来初始化它们:
public enum Education : Int16
{
PHD = 1,
}
当我搜索“1”时,它会显示其中包含 PHD 的结果,但是当我搜索“PHD”时,什么都没有显示。
我正在使用 ADO.NET 进行 CRUD 操作
这是我在控制器中使用的方法的代码:
string connectionString = Configuration["ConnectionStrings:WebApplication7ContextConnection"];
using (SqlConnection connection = new SqlConnection(connectionString))
{
//SqlDataReader
connection.Open();
string email = User.Identity.Name;
SqlCommand command = new SqlCommand(email, connection);
if(searchString == null)
{
string sql = "Select * From Teacher Where Email = '" + email + "' ORDER BY AddedOn DESC";
SqlCommand command2 = new SqlCommand(sql, connection);
using (SqlDataReader dataReader = command2.ExecuteReader())
{
while (dataReader.Read())
{
ContactUsMessage teacher = new ContactUsMessage();
teacher.Id = Convert.ToInt32(dataReader["Id"]);
teacher.Name = Convert.ToString(dataReader["Name"]);
teacher.Email = Convert.ToString(dataReader["Email"]);
teacher.Phone = Convert.ToString(dataReader["Phone"]);
teacher.education = (Education)Convert.ToInt16(dataReader["Education"]);
teacher.Message = Convert.ToString(dataReader["Message"]);
teacher.AddedOn = Convert.ToDateTime(dataReader["AddedOn"]);
teacherList.Add(teacher);
}
}
}
else
{
string sql = "Select * From Teacher Where Email = '" + email + "' AND education = '"+searchString+"' AND Message LIKE '%"+searchString+"%' OR Name LIKE '%" + searchString + "%' OR Phone LIKE '%" + searchString + "%' ORDER BY AddedOn DESC";
SqlCommand command2 = new SqlCommand(sql, connection);
using (SqlDataReader dataReader = command2.ExecuteReader())
{
while (dataReader.Read())
{
ContactUsMessage teacher = new ContactUsMessage();
teacher.Id = Convert.ToInt32(dataReader["Id"]);
teacher.Name = Convert.ToString(dataReader["Name"]);
teacher.Email = Convert.ToString(dataReader["Email"]);
teacher.Phone = Convert.ToString(dataReader["Phone"]);
teacher.education = (Education)Convert.ToInt16(dataReader["Education"]);
teacher.Message = Convert.ToString(dataReader["Message"]);
teacher.AddedOn = Convert.ToDateTime(dataReader["AddedOn"]);
teacherList.Add(teacher);
}
}
}
connection.Close();
}
return View(teacherList);
【问题讨论】:
-
请发布您已经尝试过的minimal, complete and verifiable example。您提供的信息太少(不清楚)。
-
@khalid 你能看看我下面的答案,让我知道它是否有效吗?
标签: c# asp.net asp.net-core