c# - 如何使用忽略大小写敏感的参数编写存储过程

标签 c# sql parameters sql-like

你能告诉我这个有什么问题吗?

ALTER proc [dbo].[UrunuGetir](@basharf nvarchar(5))
as
     select adi, urunid, kategori 
     from urun 
     where (UPPER(adi) like UPPER('%' +'@basharf'+ '%')) 
           or (LOWER(adi) like LOWER ('%' +'@basharf'+ '%')) 
     order by kategori

没有错误但也没有数据。

这里是编辑:

protected void Button1_Click(object sender, EventArgs e) 
{ 
   if (TextBox1.Text != null) 
   { 
      UrunGetir(TextBox1.Text); 
   } 
   else 
   { 
     return; 
   } 
} 

private void UrunGetir(string p)
{
    SqlConnection baglanti = new SqlConnection("....");

    SqlDataAdapter dap = new SqlDataAdapter("select adi, urunid, kategori, birimf from urun where (UPPER(adi) like '%' + UPPER(@basharf) + '%' ) or (LOWER(adi) like '%' + LOWER(@basharf) + '%' ) order by kategori", baglanti);

    dap.SelectCommand.Parameters.Add("@basharf", p);

    if (baglanti.State == System.Data.ConnectionState.Closed)
        baglanti.Open();

    DataTable dt = new DataTable();
    dap.Fill(dt);

    GridView1.DataSource = dt;
    GridView1.DataBind();

    if (baglanti.State == System.Data.ConnectionState.Open)
        baglanti.Close();

    HiddenField1.Value = p.Substring(0,p.Length);
}

最佳答案

这个位:

UPPER('%' +'@basharf'+ '%')

您要连接三个字符串,因此该表达式等于:

UPPER('%@basharf%')

你的意思可能是:

'%' + UPPER(@basharf) + '%'

它将传入的参数与 % 符号连接起来。

关于c# - 如何使用忽略大小写敏感的参数编写存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7918167/

相关文章:

c# - 如何从 SQL Server 数据库中获取以给定字符串开头的条目?

sql - 列出连接表记录

java - 如何使用 URIBuilder 构造带参数的 URI?

sql - 哪个更好 : Distinct or Group By

sql - 如何知道(以编程方式)何时在 PostgreSQL/Amazon Redshift 上完成查询?

javascript - 如何使用javascript获取方法参数的值?

powershell - 'local' 是 PowerShell 模块中的函数参数

c# - 在 Visual Studio 中为 Webservice 创建部署包

c# - 特定行的 LinqToExcel GetColumnNames

javascript - 在asp.net c#中通过POST传递动态列表