ASPX SQL参数

问题描述 投票:0回答:1

我正在尝试根据用户的输入和缺少输入来制作过滤列表。

我能够过滤用户输入的全名或只是名字的第一个字符,我有3个不同的文本框(名称,姓氏,国家),用于过滤器。在SQL Server中,我创建了代码来执行此操作并过滤即使它们没有在一个或所有文本框中输入值。所以我相信SQL存储过程很好。

我相信我的问题是当我试图通过文本框从Visual Studio中的用户获取此信息并使用SQL参数将信息发送到存储过程时。我注意到我无法在SQL Paramete中获得空字符串。无论如何我有一个空字符串传递给SQL参数?

这是代码的一些部分......

存储过程的相关位:

@Namenvarchar(100) = ' ',
@Surname nvarchar(100) = ' ',
@Country nvarchar(100) = ' '

AND IsNull(Input.Name, '')  LIKE '%' + @Name+ '%'
AND IsNull(Input.Surname, '') LIKE '%' + @Surname + '%' 
AND IsNull(Input.Country, '') LIKE '%' + @Country + '%'

这是与Visual Studio相关的代码:

SqlCommand cmd = new SqlCommand("FilterBasedOnInput", con);
cmd.CommandType = CommandType.StoredProcedure;

SqlParameter Name = new SqlParameter("@Name",  TBName.Text);
SqlParameter Surname= new SqlParameter("@Surname",  TBSurname.Text);
SqlParameter Country= new SqlParameter("@Country",  TBCountry.Text);


cmd.Parameters.Add(Name);
cmd.Parameters.Add(Surname);
cmd.Parameters.Add(Country);

con.Open();

所以我在DB中说我有......

Names ("Tom", "Jones", "Nick")
Surname ("To", "Jo", "Ni")
Country ("England", "USA", "France")

如果用户在名称文本框“O”中输入,那么Tom和Jones都会提出他们的3列,但是如果他们输入Surname文本框以及“To”那么只有Tom会出现他的3列。我确实在SQL Server上工作,但在Visual Studio ASPX中没有。

c# asp.net sql-server sqlparameters
1个回答
0
投票

好吧,伙计们,我找到了答案,它就在GridView中!

我正在显示数据,当你配置gridview时,有一个默认值列,只需要放%

现在,我甚至可以使用一个或两个空文本框来检索值。

谢谢大家的指导,它解决了这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.