在textBox中搜索值,以便在gridView中的数据中找到它

时间:2016-03-25 13:46:59

标签: c# asp.net gridview datagridview

当然我打开.xls文件,在文本框中输入文件位置,我想通过在文本框中输入来搜索某个值并删除值所在的行。

以下是Form1的代码,其中包含dataGridView:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.OleDb;

namespace Plan_de_lucru_1._0
{
    public partial class frPlanMain : Form
    {
        public frPlanMain()
        {
            InitializeComponent();
        }

        private void frPlanMain_Load(object sender, EventArgs e)
        {

        }

        private void GoButton_Click(object sender, EventArgs e)
        {
            string constr = "Provider = MicroSoft.Jet.OLEDB.4.0; Data Source=" + locTBox.Text + "; Extended Properties =\"Excel 8.0; HDR=Yes;\";";
            OleDbConnection con = new OleDbConnection(constr);
            OleDbDataAdapter sda = new OleDbDataAdapter("Select * From [" + shTBox.Text + "$]", con);
            DataTable dt = new DataTable();
            sda.Fill(dt);
            dGVPlan.DataSource = dt;
            new SearchWindow().Show();
            this.Show();
        }
    }
}

这是包含textBox和按钮的Form2,我想在其中输入搜索值。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Plan_de_lucru_1._0
{
    public partial class SearchWindow : Form
    {
        public SearchWindow()
        {
            InitializeComponent();
        }

        private void SearchButtonW_Click(object sender, EventArgs e)
        {
            String str = "select * from searchBox where ( Name like '%' + @search + '%')";
            BindingSource bs = new BindingSource();

        }
    }
}

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

我在类级别声明了一个DataTable。

protected static DataTable dtSearch = null; 

然后我按下了一个按钮,根据我在Textbox.Text字段中输入的值搜索DataTable进行过滤。

protected void btnSrch_Click(object sender, EventArgs e)
{
    if (txtSearch.Text.Length > 0)
    {
        dtSearch = dtInitialDatable;//the datatable that was bound to my DatagridView 
        dv = new DataView(dtSearch);
        dv.RowFilter = "Data_Column_Name LIKE '%" + txtSearch.Text.ToUpper() + "%'";
        //bind the DataGridView to dv 
        myDataGridView.DataSource = dv;
        //myDataGridView.DataBind();//uncomment if you are doing this in webform
    }
    else
    {
        dtSearch = null;
        dv = null;
    }
}

答案 1 :(得分:0)

这对我有用:

namespace Plan_de_lucru_1._0
{
    public partial class SearchWindow : Form
    {
        public frPlanMain refTofrPlanMain;

        public SearchWindow(frPlanMain f) //<<Edit made here 
        {
            refTofrPlanMain = f;
            InitializeComponent();
        }

        private void SearchButtonW_Click(object sender, EventArgs e)
        {
            {
                (refTofrPlanMain.dGVPlan.DataSource as DataTable).DefaultView.RowFilter = string.Format("Vodic = '{0}'", searchTBoxW.Text);
                foreach (DataGridViewRow item in refTofrPlanMain.dGVPlan.Rows)
                {
                    if (item.Visible)
                    {
                        item.Selected = true;
                        break;