只显示像“爱”这样的组合框的价值?

时间:2015-12-22 04:20:42

标签: c#

我创建了一个存储过程来选择表的所有值。 但是我想在C#应用程序中,组合框仅显示值love关键字。

示例:

love love
love king
love soft

不要显示项目:

long time
union all

我的代码:

public void HienThiLoaiBCao()
{
    LovetoDAL cal = new LovetoDAL();
    string keyword = "BC";

    int i = cbxTenBaoCao.FindString(keyword);
    if (i == -1)
        return;
    else
    {
        var dt = cal.Love_GetByTop("", "", "ID DESC");
        cbxTenBaoCao.DataSource = dt;
        cbxTenBaoCao.DisplayMember = "lover";
        cbxTenBaoCao.ValueMember = "lover";
    }
}

public DataTable Love_GetByTop(string Top, string Where, string Order)
{
    using (var cmd = new SqlCommand("sq_Love_GetByTop", GetConnection()))
    {
        cmd.CommandType = CommandType.StoredProcedure;
        var da = new SqlDataAdapter(cmd);
        cmd.Parameters.Add(new SqlParameter("@Top", Top));
        cmd.Parameters.Add(new SqlParameter("@Where", Where));
        cmd.Parameters.Add(new SqlParameter("@Order", Order));
        var dt = new DataTable();
        da.Fill(dt);
        return dt;
    }
}


USE [LEO]
GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[sq_Love_GetByTop]
@Top nvarchar(10),
@Where nvarchar(500), 
@Order nvarchar(500)
AS
    Declare @SQL as nvarchar(500) 
Select @SQL = 'SELECT top (' + @Top + ') * FROM [Love]'
if len(@Top) = 0
BEGIN
Select @SQL = 'SELECT * FROM [Love]'
END
if len(@Where) >0
BEGIN
Select @SQL = @SQL + ' Where ' + @Where
END
if len(@Order) >0
BEGIN
Select @SQL = @SQL + ' Order by ' + @Order
END
EXEC (@SQL)

感谢。

2 个答案:

答案 0 :(得分:0)

一种选择是从 if (str1.compare(str2) == 0) 00853830 cmp dword ptr [ebp-14h],10h 00853834 lea eax,[str2] 00853837 push dword ptr [ebp-18h] 0085383A cmovae eax,dword ptr [str2] 0085383E push eax 0085383F push dword ptr [ebp-30h] 00853842 push ecx 00853843 lea ecx,[str1] 00853846 call std::basic_string<char,std::char_traits<char>,std::allocator<char> >::compare (0853B80h) 过滤掉以love开头的记录。您可以直接在DataTable上使用Select方法,也可以在表格的默认DataTable上使用RowFilter属性,然后将过滤后的结果绑定到您的组合框。

使用DataView -

这样的事情
DataView

其余代码将按原样。

有关过滤结果集的更多信息 -

http://www.csharp-examples.net/dataview-rowfilter/

https://msdn.microsoft.com/en-us/library/system.data.datatable.select%28v=vs.110%29.aspx

答案 1 :(得分:-1)

我没有尝试这段代码,因为我编码c#已经很久了。

//get the values from your stored procedure
List<string> values = task.storedProcedures();
//remove items that doesn't start with "love"
values = values.Where(item => item.someValues.StartsWith("love"))

希望这有帮助