Фильтрация выходных данных в gridview из хранимой процедуры не работает
Я попытался отфильтровать выбор строки из gridview1 в gridview2, однако вывод в gridview2-это список таблицы без какого-либо фильтра.
Коды следующим образом
/// /// ///GRIDVIEW2 /// /// string str1; str1 = ConfigurationManager.ConnectionStrings["WEBHR"].ConnectionString; SqlConnection sqlcon1 = new SqlConnection(str1); string intno7, intno8; //Get the intno // intno7 = GridView2.SelectedRow.Cells[2].Text; // intno8 = GridView2.SelectedRow.Cells[6].Text; intno7 = txt_Code.Text; intno8 = txt_Year.Text; //call the stored procedure SqlCommand SqlCmd1 = new SqlCommand("sp_GetLeavGrid2year", sqlcon1); SqlCmd1.CommandType = System.Data.CommandType.StoredProcedure; //Supply the User_id parameter SqlCmd1.Parameters.AddWithValue("@BRNNO", intno7); SqlCmd1.Parameters.AddWithValue("@BYEAR", intno8); //Create and supply the output parameters //Create and supply the output parameters SqlCmd1.Parameters.Add("@BEMPNO", System.Data.SqlDbType.VarChar, 50); SqlCmd1.Parameters["@BEMPNO"].Direction = System.Data.ParameterDirection.Output; SqlCmd1.Parameters.Add("@BRETURNDATE", System.Data.SqlDbType.VarChar, 50); SqlCmd1.Parameters["@BRETURNDATE"].Direction = System.Data.ParameterDirection.Output; SqlCmd1.Parameters.Add("@BIDCNT", System.Data.SqlDbType.VarChar, 50); SqlCmd1.Parameters["@BIDCNT"].Direction = System.Data.ParameterDirection.Output; //Open the sql data connection sqlcon1.Open(); //Execute the stored procedures SqlCmd1.ExecuteNonQuery(); //Assign the results to the controls txt_idcnt.Text = SqlCmd1.Parameters["@BIDCNT"].Value.ToString(); txt_Code.Text = SqlCmd1.Parameters["@BRNNO"].Value.ToString(); txt_Empno.Text = SqlCmd1.Parameters["@BEMPNO"].Value.ToString(); txt_Return_Date.Text = SqlCmd1.Parameters["@BRETURNDATE"].Value.ToString(); txt_Year.Text = SqlCmd1.Parameters["@BYEAR"].Value.ToString(); //SqlDataAdapter dm = new SqlDataAdapter("Select * from curasch where idno=@BRNNO and year1=@BYEAR", sqlcon1); SqlDataAdapter dm = new SqlDataAdapter("Select * from curasch where idno='" + txt_Code.Text + "' and year1='" + txt_Year.Text + "'", sqlcon1); DataSet df = new DataSet(); dm.Fill(df,"Curasch"); GridView2.DataSource = df.Tables[0]; GridView2.DataBind(); //GridView2.SelectedIndexChanged += new EventHandler(GridView2_SelectedIndexChanged); txt_Empno.Focus(); LoadTransactionSearch(); lblstatus.Text = "///Grid2 record successful"; // txt_Ed_Date.Text = SqlCmd.Parameters["@BEDDATE"].Value.ToString(); lblstatus.Text = "///Grid2View record successful"; // // sqlcon1.Close(); /// /// ///GRIDVIEW2 /// ///
Поскольку фильтр не работал, я попробовал альтернативу, однако фильтр все еще не работает.
Пожалуйста, помогите мне исправить эту проблему.
Спасибо
Что я уже пробовал:
Я проверил сеть на подобный пример, однако не смог найти ни одного.
CHill60
Не используйте конкатенацию строк для создания инструкции sql - используйте SqlParameters
sachin.vishwa90
вы проверьте, если вы получаете значение из первой таблицы? возвращает ли ваш ADO-код правильные данные?
И для таких сценариев предпочтительнее использовать updatepanel. другие мудрые изменения произойдут, и событие pageload снова сбросит вещи, из-за чего вы не увидите новых изменений.
Member 12770648
пожалуйста, помогите с updatepanel, не знакомый с этим
спасибо