使用asp.net的sql server的动态下拉功能

时间:2014-07-23 03:16:39

标签: 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. 上面的代码是正确的,但不知道为什么它没有执行动态下拉列表,如谷歌或任何具有该功能的网站
  2. 任何快速提示如何编写SQL查询不是针对一列而是针对所有四列,例如First_NameLast_NameAge& Gender
  3. 编辑: enter image description here

    enter image description here

    我只搜索" First_Name"仅限字符。如果我要搜索" Last_Name","性别"或"年龄"除非我从代码中删除了First_Name列并将其替换为新的列名,否则它将无法工作。

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

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

    您随机开始在" Affy id / Gene符号"中输入字符。文本框并接收无限量的序列选项供您选择。这就是我遇到的问题,需要在我的项目中实现这种方法。

    谢谢!

1 个答案:

答案 0 :(得分:0)

  

上面的代码是正确的,但不知道为什么它没有执行   动态下拉列表,如谷歌或任何有这个的网站   特征

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

因此在按下按钮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,但您可能需要对性别和年龄做一些更改。

请先检查出First_Name和Last_Name。