0

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

 <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";
}

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

4

3 回答 3

0

你没有设置参数SqlDataSource1
我不能连接字符串。

于 2013-03-03T17:45:58.730 回答
0

有几个问题。第一个是您使用了参数化查询,但尚未定义您的参数是什么。第二个是您只是为您的 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();
        }
    }
于 2013-03-03T17:48:12.777 回答
0

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

protected void SqlDataSource1_Selecting(对象发送者,SqlDataSourceSelectingEventArgs e)
        {
            SqlDataSource1.SelectCommand = "SELECT name, num FROM Table WHERE T_Name=@MyString";
SelectParameters["MyString"].DefaultValue = "你的参数在这里";

        }
于 2013-03-03T17:48:17.223 回答