Ker*_*zoz 6 c# asp.net visual-studio
我正在使用C#ASP.NET并计划制作一个需要5个参数作为搜索条件的搜索功能让我们使用3个条件来制作示例:a,b和c
问题:我是否需要将所有7种可能的搜索功能:
直接连接数据库(SQL)
或者是否可以从数据库(SQL)创建表的列表并在C#aspx.cs中创建一个条件?
我不会问关于示例代码,我只是要求提供简化编码搜索功能的概念,因为我至少有5个条件,这将使我至少做25个不同的搜索功能所有搜索的可能性.谢谢.
可以从数据库(SQL)执行,这将是最好的解决方案。您必须Stored Procedure为此进行创建,如下所示。
SQL:
Create Proc SP_Search(@A Int, @B NVarChar(20), @C Int)
As
Begin
If @A = 0 Set @A = Null
If @B = '' Set @B = Null
If @C = 0 Set @C = Null
Select * From Table Where (A=@A Or @A Is Null) And (B=@B Or @B Is Null) And (C=@C Or @C Is Null)
End
Run Code Online (Sandbox Code Playgroud)
我来解释一下上面的SQL。它将接受 param@A和@B中的输入@C。如果@A则0设置@A = Null。在(A=@A Or @A Is Null)条件下工作就像一个可选参数。如果@A有某个值,则条件将适用,如果为空,则条件将被忽略。您可以像这样添加更多参数。
Exec SP_Search 1,'',0Exec SP_Search 1,'A',0Exec SP_Search 1,'A',1Exec SP_Search 1,'',1Exec SP_Search 0,'A',0Exec SP_Search 0,'A',1Exec SP_Search 0,'',1调用的 C# 代码Stored Procedure:
int A = 1;
string B = "A";
int C = 1;
using (SqlConnection conn = new SqlConnection("Connection String")) {
conn.Open();
SqlCommand cmd = new SqlCommand("SP_Search", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@A", A));
cmd.Parameters.Add(new SqlParameter("@B", B));
cmd.Parameters.Add(new SqlParameter("@C", C));
using (SqlDataReader reader = cmd.ExecuteReader()) {
while (reader.Read())
{
//Read Your Data Here
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
914 次 |
| 最近记录: |