尝试从应用程序中的两个文本框显示来自SQL Server数据库的信息

时间:2018-11-11 05:56:39

标签: c#

我试图通过两个文本框显示存储在数据库中的信息,这两个文本框会通过读取文本文件自动填充。

我得到第一个textBox来搜索数据库并在我的gridView中返回信息。但是我无法显示第二个textBox来显示信息。

问题在于第二个textBox必须搜索列名,然后应返回该搜索列中的信息。

这是我第一个textBox的代码(有效)

private void latestOwnTextBox_TextChanged(object sender, EventArgs e)
{
        using (var conn = new SqlConnection())
        {
            conn.ConnectionString = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\OwnersDB.mdf;Integrated Security=True";
            conn.Open();

            using (var adapter = new SqlDataAdapter("SELECT GetDate() as Event, Owner FROM TBLOwn where Owner like @search", conn))
            {
                adapter.SelectCommand.Parameters.Add("search", SqlDbType.NVarChar).Value =
            "%" + latestOwnTextBox.Text + "%";
                adapter.Fill(dataTable);

                if (dataTable.Columns.Count > 0)
                {
                    dataTable.PrimaryKey = new DataColumn[] { dataTable.Columns[0] };
                }

                mainAMSDataGrid.DataSource = dataTable;
                mainAMSDataGrid.Visible = true;
                mainAMSDataGrid.Sort(this.mainAMSDataGrid.Columns[0], ListSortDirection.Descending);

                conn.Close();
            }
        }
}

这是第二个textBox的代码(这是我努力搜索该列并在该列中显示信息的地方)

private void inputOwnTextBox_TextChanged(object sender, EventArgs e)
{
        using (var conn1 = new SqlConnection())
        {
            conn1.ConnectionString = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\OwnersDB.mdf;Integrated Security=True";
            conn1.Open();

            using (var adapter1 = new SqlDataAdapter("SELECT * FROM TBLOwn WHERE '%%' like @search1", conn1))
            { 
                adapter1.SelectCommand.Parameters.Add("search1", SqlDbType.NVarChar).Value =
            "%" + inputOwnTextBox.Text + "%";
                adapter1.Fill(dataTable);

                if (dataTable.Columns.Count > 0)
                {
                    dataTable.PrimaryKey = new DataColumn[] { dataTable.Columns[0] };
                }

                mainAMSDataGrid.DataSource = dataTable;
                mainAMSDataGrid.Visible = true;
                mainAMSDataGrid.Sort(this.mainAMSDataGrid.Columns[0], ListSortDirection.Descending);

                conn1.Close();
            }
        }
}

然后这应该显示我dataGridView

中一行中一项的两次搜索得到的信息

谢谢

0 个答案:

没有答案