10-18-2012، 11:31 AM
سلام
من یه گرایدویو دارام که بعد از سرچ مطالب رو درونش قرار میدم. حالا میخوام سطری که انتخاب شده رو حذف کنم اما خطای out of range میده. میشه راهنماییم کنید.
من یه گرایدویو دارام که بعد از سرچ مطالب رو درونش قرار میدم. حالا میخوام سطری که انتخاب شده رو حذف کنم اما خطای out of range میده. میشه راهنماییم کنید.
کد:
protected void btnSearchUser_Click(object sender, EventArgs e)
{
SqlConnection Con = new SqlConnection(MyConnectionString.ConnectionString);
string SqlStr = "SELECT FirstName as 'نام',LastName as 'نام خانوادگی',RoleName as 'سطح دسترسی',Email as 'پست الکترونیک',Gender as 'جنسیت' FROM [UserAcount] WHERE (Email Like N'%'+@search+'%') OR (FirstName LIKE N'%'+@search+'%') OR (LastName LIKE N'%'+@search+'%')";
SqlCommand Cmd = new SqlCommand(SqlStr, Con);
Cmd.Parameters.AddWithValue("@search", txtUserSerch.Text);
try
{
Con.Open();
int i = Cmd.ExecuteNonQuery();
if (i != 0)
{
//BindGridview(txtname.Text);
Grv_Search.DataSource = Cmd.ExecuteReader();
Grv_Search.DataBind();
Con.Close();
//btndeleteuser.Visible = true;
}
else
{
lblMessage.Text = " اين نام کاربري پيدا نشد";
}
}
catch(Exception exp)
{
lblMessage.Text = exp.ToString();
}
}
protected void btnDelete_Click(object sender, EventArgs e)
{
foreach (GridViewRow row in Grv_Search.Rows)
{
CheckBox cb = (CheckBox)row.FindControl("chkSelect");
if (cb.Checked)
{
try
{
string email = Convert.ToString(Grv_Search.DataKeys[row.RowIndex].Value);
SqlDataSource1.DeleteParameters["Email"].DefaultValue = email;
SqlDataSource1.Delete();
lblMessage.Text = "عمل حذف با موفقيت انجام شد";
}
catch (Exception exp)
{
lblMessage.Text = exp.ToString();
}
}
}
}