如何在单击按钮时使用SqlDataSource从gridview获取结果

时间:2014-06-17 13:09:54

标签: sql sql-server button gridview sqldatasource

我的总体目标是能够在我的文本框中输入信息,然后单击按钮以使用gridview搜索并从数据库中获取结果。到目前为止,我已经设置了SqlDataSource SQL语句。我需要弄清楚如何将点击事件上的按钮与我的SqlDataSourceTextbox相关联。

这是我到目前为止所做的:

 protected void Button1_Click(object sender, EventArgs e)
 {
     SqlConnection connection = new SqlConnection("Data Source=********;Initial Catalog=*******;User ID=*******;Password=*******");
     connection.Open();
 }

我不确定如何使用我已设置的SqlDataSource

更新代码:

SqlConnection sqlCon = new SqlConnection("*******");
        SqlDataAdapter dt = new SqlDataAdapter();
        DataSet ds = new DataSet();
        try
        {
            sqlCon.Open();
            dt.SelectCommand = new SqlCommand("SELECT* FROM  Core.Form_Section_SubSection_Item_Rel WHERE ([DataCollectionPeriodID] = @DataCollectionPeriodID)", sqlCon);
            dt.Fill(ds);
            sqlCon.Close();
            GridView1.DataBind();
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }

1 个答案:

答案 0 :(得分:1)

我会建议您使用带有参数的存储过程并执行类似下面的操作,但您可以更改此选项以使用您的选择查询,只需更改命令类型

  using (SqlConnection sqlCon = new SqlConnection("connection string")) 
{ 

 using (SqlCommand cmd = new SqlCommand()) 
{ 
 sqlCon.Open(); 
 cmd.Connection = sqlCon; 
  cmd.CommandType = CommandType.Text; 
 cmd.CommandText = "SELECT* FROM Core.Form_Section_SubSection_Item_Rel WHERE         DataCollectionPeriodID = @DataCollectionPeriodID"; 
 cmd.CommandTimeout = 30; 
cmd.Parameters.Add("@DataCollectionPeriodID", SqlDbType.VarChar).Value = TextBox1.Text 
SqlDataAdapter dt = new SqlDataAdapter(cmd); 
DataSet ds = new DataSet(); 
 dt.Fill(ds); 

if (ds.Tables.Count > 0) 
{ 
 if (ds.Tables[0].Rows.Count > 0) 
 { 
 GridView1.DataSource = ds; 
  GridView1.DataBind(); 
 } 
} 
 } 
 }