c# - 带有 asp.net 的 sql server 的动态下拉功能

标签 c# asp.net sql-server database

我取得了一些进展。我的连接字符串已经过测试,可以与我的 sql server 数据库一起使用。

当我尝试为人们的名字输入不同的字符时,“动态”下拉功能仍然没有出现。这是应该工作的后端代码,但我不知道为什么它不工作?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;

public partial class _Default : System.Web.UI.Page
{
    SqlConnection con = new SqlConnection("Data Source=SKYNET-1000\\SQLEXPRESS;InitialCatalog=CSC_480;Integrated Security=True"); 

    protected void Button1_Click(object sender, EventArgs e)
    {
        String str = "select * from People where (First_Name like '%' + @search + '%')";
        SqlCommand win7 = new SqlCommand(str, con);
        win7.Parameters.Add("@search", SqlDbType.NVarChar).Value = TextBox1.Text;

        con.Open();
        win7.ExecuteNonQuery();
        SqlDataAdapter da = new SqlDataAdapter();
        da.SelectCommand = win7;
        DataSet ds = new DataSet();
        da.Fill(ds, "First_Name");
        GridView2.DataSource = ds;
        GridView2.DataBind();
        con.Close();
    }
}

话虽这么说,一切都可以编译和工作。尽管我的另一个问题是我还有三列 Last_NameAgeGender

我如何在不删除 First_Name 并且只放置一列而不是在上面的代码中将所有内容放在一起的情况下将所有内容放在一起?

例如,您只能通过他们的First_Name 搜索用户,但我想包括Last_NameAgeGender 到代码中,而不是手动删除一个选项并放入另一个选项。我想把所有内容都放在里面,这样就可以搜索到。

简而言之,我正在寻找两件事:

  1. 上面的代码是正确的,但不知道为什么它不能像 google 或任何具有该功能的网站那样执行动态下拉列表
  2. 关于如何不针对一列而是针对所有四列编写 SQL 查询的任何快速提示,例如 First_NameLast_NameAge & 性别?

编辑: enter image description here

enter image description here

我只搜索“First_Name”字符。如果我要搜索“Last_Name”、“Gender”或“Age”,除非我从代码中删除 First_Name 列并将其替换为新的列名称,否则它不会起作用。

这就是为什么我要问的是,有什么方法可以在上面的代码中包含所有四列,以确保所有内容都可搜索吗?

这就是我所说的“动态”的意思。 http://kmplot.com/analysis/index.php?p=service&cancer=ovar上面的链接更好地说明了这一点。

您在“Affy id/Gene symbol”文本框中随机开始输入字符,然后收到无限的序列选项供您选择。这就是我卡住的地方,需要在我的项目中实现这种类型的方法。

谢谢!

最佳答案

The code above is right but do not know why it is not performing a dynamic drop down list like google or any website that has that feature

首先,您已经在按钮点击事件中编写了代码。

所以直到按下按钮 1 才会起作用。

那怎么叫动态呢?

要使其动态化,您必须在要放置该功能的控件中编写代码。

例如 TextChanged 事件。

你必须让你的控件autopostback propery = true

AutoPostBack=True

选择您的控件并查看属性窗口,然后将您的代码移动到控件中的适当事件中。


编辑:

因此,根据您的编辑,我认为您需要适用于您的代码的 SQL 查询。

我觉得应该是这样的

String str = "select * from People where (First_Name like '%' or Last_Name like '%' or Gender like '%' or Age like '%')";

我没有测试我的查询,但我非常确定它应该是这样的,但不完全相同。

请检查一下。

我认为它适用于 First_Name 和 Last_Name,但您可能需要对 Gender 和 Age 进行一些更改。

请先检查 First_Name 和 Last_Name。

关于c# - 带有 asp.net 的 sql server 的动态下拉功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24901253/

相关文章:

SQL - 使用适用于多行的 WHERE 进行选择

c# - PagedList 不会在 asp.net mvc 中进行真正的分页

sql-server - Debezium SQL Server 连接器 - 连接被拒绝

c# - 向/从两个正在运行的应用程序发送/接收消息

c# - 如何在 c#.net 中将结构转换为字节数组,但结构大小仅在运行时定义

c# - 如何从 C# 获取 Word 文档的文件名?

ASP.Net 用户控件中的 Javascript Intellisense

ASP.NET 健康监控配置, "eventName"属性的有效值

c# - 在单个页面中处理来自动态创建的控件的多个 "chained"回发

c# - Entity Framework 存储过程单一结果集