GridView and SqlDataSource

本文关键字:SqlDataSource and GridView | 更新日期: 2023-09-27 18:02:03

我试图创建自己的命令来提取数据。首先,我在。aspx中创建工具箱SqlDataSource:

 <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
        onselecting="SqlDataSource2_Selecting"></asp:SqlDataSource>

然后添加GridView:

 <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
        onselecting="SqlDataSource1_Selecting"></asp:SqlDataSource>

现在我想写我自己的查询所以我双击"SqlDataSource">进入。aspx.cs:

protected void SqlDataSource1_Selecting(object sender, SqlDataSourceSelectingEventArgs e)    
{
    SqlDataSource1.SelectCommand = "SELECT name, num  FROM Table WHERE T_Name=@MyString";
}

问题在哪里?当我运行这个应用程序不工作

GridView and SqlDataSource

有几个问题。第一种情况是使用了参数化查询,但没有定义参数是什么。第二种方法是给SqlDataSource1分配一个SQL查询但你并没有这么做

protected void Page_Load(object sender, EventArgs e)
{
    System.Data.Sql.SqlConnection conn= new System.Data.Sql.SqlConnection(/*your connection string comes here*/);
    string query= "SELECT name, num  FROM Table WHERE T_Name=@MyString";
    System.Data.DataTable dt = new System.Data.DataTable();
    System.Data.Sql.SqlCommand cmd = new System.Data.Sql.SqlCommand(query, conn);
    System.Data.Sql.SqlDataAdapter da1 = new System.Data.Sql.SqlDataAdapter(cmd );
    da1.SelectCommand.Parameters.AddWithValue("@MyString", your_string);
    da1.Fill(dt);
        if (dt.Rows.Count > 0)
        {
            GridView1.DataSource = dt;
            GridView1.DataBind();
        }
    }

您没有为SqlDataSource1设置参数。

您应该使用select命令添加选择参数

<>之前sqldatasource1_selection (SqlDataSourceSelectingEventArgs){SqlDataSource1。SelectCommand = "SELECT name, num FROM Table WHERE T_Name=@MyString";SelectParameters("MyString")。DefaultValue = "这里的参数";}