2013-03-03 77 views
0

我试图创建自己的命令来提取数据。 第一即时通讯作出的.aspx从工具箱中的SqlDataSource:GridView和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 [email protected]"; 
} 

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

回答

0

有几个问题。 第一个是你使用了参数化查询,但没有定义你的参数是什么。 第二个是你只是分配一个SQL查询到你的SqlDataSource1,但你没有说这样做。

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 [email protected]"; 

    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(); 
     } 
    } 
+0

访问http://www.connectionstrings.com为您的连接字符串。 – zkanoca 2013-03-03 17:53:28

+0

我试图做这样的事情和错误: “数据控件'GridView1'上的数据属性,如DataSource,DataSourceID和DataMember无法在控件的数据绑定阶段进行更改。”在“GridView1.DataSource = dt;” – iTuj 2013-03-03 18:46:31

+0

然后将上面的代码写入Page_Load()方法 – zkanoca 2013-03-03 18:47:56

0

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

0

您应该添加选择参数与SELECT命令

 
protected void SqlDataSource1_Selecting(object sender, SqlDataSourceSelectingEventArgs e) 
     { 
      SqlDataSource1.SelectCommand = "SELECT name, num FROM Table WHERE [email protected]"; 
SelectParameters["MyString"].DefaultValue = "Your Parameter here"; 

     } 
相关问题