在不使用数据库的情况下从datatable(similer到like子句)中搜索值 [英] search values from datatable (similer to like clause ) without using database
本文介绍了在不使用数据库的情况下从datatable(similer到like子句)中搜索值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
public partial class WebForm4:System.Web.UI.Page
{
protected void Page_Load( object sender,EventArgs e)
{
if (!(IsPostBack))
{
会话[ 列表] = null ;
}
}
public static DataTable dt;
public static int i = 1 ;
// static int i = 1;
// 静态列表< string> LST;
受保护 void btnAdd_Click(对象发件人,EventArgs e)
{
会话[ 列表] = dt;
dt = new DataTable();
DataRow dr = null ;
// dt.Columns.Add(new DataColumn(RowNumber,typeof(int)));
dt.Columns.Add( new DataColumn( Column1, typeof ( string )));
// dt.Columns.Add(new DataColumn(Column2,typeof(string)));
if (会话[ 列表] == null )
{
dr = dt.NewRow();
dr [ Column1] = txtAdd.Text;
dt.Rows.Add(dr);
// lst.Add(txtAdd.Text);
}
else if (会话[ 列表]!= null )
{
dt = (DataTable)会话[ List];
dr = dt.NewRow();
dr [ Column1] = txtAdd.Text;
dt.Rows.Add(dr);
// lst =(List< string>)Session [List];
// lst.Insert(i,txtAdd.Text);
// i ++;
}
}
protected void btnNew_Click( object sender ,EventArgs e)
{
List< string> lst = new List< string>();
foreach (DataRow row in dt.Rows)
{
foreach (DataColumn col in dt.Columns)
{
lst.Add(行[COL]的ToString());
}
}
for ( int j = 0 ; j > = dt.Rows.Count; j ++)
{
}
bool isfound = lst.Contains(txtSearch.Text);
Response.Write(Convert.ToString(isfound));
dlshow.DataSource = dt;
dlshow.DataBind();
}
}
我有两个文本框一个要添加,另一个是搜索我想只绑定那些匹配值匹配搜索文本框(如'Like'子句)我是不使用任何数据库
解决方案
DataTable dtNew = dt.Clone();
// 我的错误......%应该在单个qoute之后...... / span>
DataRow [] dr = dt.Select( Column1 like'%」 + txtSearch.Text.Trim()+ %');
foreach (DataRow d in dr)
{
dtNew。 ImportRow(d);
}
dlshow.DataSource = dtNew;
dlShow.DataBind();
希望这有助于!!
有看看这里:直接在数据表中过滤和排序 [ ^ ]
public partial class WebForm4 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!(IsPostBack))
{
Session["List"] = null ;
}
}
public static DataTable dt;
public static int i = 1;
// static int i = 1;
//static List<string> lst;
protected void btnAdd_Click(object sender, EventArgs e)
{
Session["List"] = dt;
dt = new DataTable();
DataRow dr = null;
// dt.Columns.Add(new DataColumn("RowNumber", typeof(int)));
dt.Columns.Add(new DataColumn("Column1", typeof(string)));
// dt.Columns.Add(new DataColumn("Column2", typeof(string)));
if (Session["List"] == null)
{
dr = dt.NewRow();
dr["Column1"] = txtAdd.Text;
dt.Rows.Add(dr);
// lst.Add(txtAdd.Text);
}
else if (Session["List"] != null)
{
dt = (DataTable)Session["List"];
dr = dt.NewRow();
dr["Column1"] = txtAdd.Text;
dt.Rows.Add(dr);
//lst = (List<string>)Session["List"];
//lst.Insert(i,txtAdd.Text);
//i++;
}
}
protected void btnNew_Click(object sender, EventArgs e)
{
List<string> lst = new List<string>();
foreach (DataRow row in dt.Rows)
{
foreach (DataColumn col in dt.Columns)
{
lst.Add(row[col].ToString());
}
}
for (int j = 0; j >= dt.Rows.Count; j++)
{
}
bool isfound = lst.Contains(txtSearch.Text);
Response.Write(Convert.ToString(isfound));
dlshow.DataSource = dt;
dlshow.DataBind();
}
}
i have two textboxes one to add and other is to search i want to bind only those matching values matches with search textbox ( Like ' Like ' clause ) i am not using any data base
解决方案
DataTable dtNew = dt.Clone(); //My Mistake...the "%" Should come after the single qoute.... DataRow[] dr = dt.Select("Column1 like '%" + txtSearch.Text.Trim() +"%'"); foreach(DataRow d in dr) { dtNew.ImportRow(d); } dlshow.DataSource =dtNew; dlShow.DataBind();
Hope this Helps!!
Have a look here: Filtering and Sorting Directly in Data Tables[^]
这篇关于在不使用数据库的情况下从datatable(similer到like子句)中搜索值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文