[英]Switch case in SQL 2008 Server R2
我一直在尝试在网页/表单上创建搜索功能。 这有点复杂,因为它有多个搜索框。
它必须搜索 sql 数据库并返回正确的行。
如果值是否为空,我正在寻找一个等效于执行某个查询的开关。 通常,如果用户不输入学生 ID(主键),那么它将执行不包含 ID 参数的查询。 不知道这是否是正确的逻辑。 我在 sql 方面的知识非常有限 atm,对不起,如果这是一个基本问题,但我没有在谷歌上找到解决方案,因为显然没有人需要这样做。 我当然正在寻找一个存储过程
这就是我想要触发 SQL 的想法
using (SqlCommand cmd = new SqlCommand("Student_CRUD"))
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@Action", "SEARCH");
cmd.Parameters.AddWithValue("@StudentID", StudentID);
cmd.Parameters.AddWithValue("@FirstName", Name);
cmd.Parameters.AddWithValue("@Class", Class);
cmd.Parameters.AddWithValue("@RollNumber", RollNumber);
cmd.Connection = con;
con.Open();
try
{
cmd.ExecuteNonQuery();
con.Close();
}
catch (SqlException exp)
{
Response.Write(exp);
}
}
您可以在存储过程中的查询中执行此操作:
WHERE FirstName = @FirstName
AND (@StudentID IS NULL OR (StudentID = @StudentID))
AND (@Class NULL OR (Class = @Class))
....
但是,您必须在代码中将@studentID
值设置为 null ( DBNull.Value
),以便将null
值传递给 sql 查询。 因此,当向此查询传递空值时,条件将被忽略。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.