我创建了一个存储过程来选择表的所有值。
但是我想在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)
感谢。
答案 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"))
希望这有帮助