Как решить эту ошибку:gridview 'gridview1' запустил событие rowediting, которое не было обработано.
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data; using System.Data.SqlClient; namespace EmpGrid { public partial class WebForm1 : System.Web.UI.Page { static DataTable ds = new DataTable(); private SqlConnection conn = new SqlConnection(@"Data Source=ADMIN-PC\SQLEXPRESS;Initial Catalog=task;User ID=sa;Password=ups"); protected void Page_Load(object sender, EventArgs e) { if (!this.IsPostBack) { if (!ds.Columns.Contains("id")) ds.Columns.Add("id"); if (!ds.Columns.Contains("name")) ds.Columns.Add("name"); if (!ds.Columns.Contains("salary")) ds.Columns.Add("salary"); // GridView1.DataSource = dt; // GridView1.DataBind(); gvbind(); } } protected void gvbind() { conn.Open(); SqlCommand cmd = new SqlCommand("Select * from empdet", conn); SqlDataAdapter da = new SqlDataAdapter(cmd); DataSet ds = new DataSet(); da.Fill(ds); conn.Close(); if (ds.Tables[0].Rows.Count > 0) { GridView1.DataSource = ds; GridView1.DataBind(); } else { //ds.Tables[0].Rows.Add(ds.Tables[0].NewRow()); GridView1.DataSource = new String[] { }; GridView1.DataBind(); } } protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e) { GridViewRow row = (GridViewRow)GridView1.Rows[e.RowIndex]; Label lbldeleteid = (Label)row.FindControl("lblID"); conn.Open(); SqlCommand cmd = new SqlCommand("delete FROM empdet where id='" + Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Value.ToString()) + "'", conn); cmd.ExecuteNonQuery(); conn.Close(); gvbind(); } protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e) { GridView1.EditIndex = e.NewEditIndex; gvbind(); } protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e) { int id = Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Value); GridViewRow row = (GridViewRow)GridView1.Rows[e.RowIndex]; Label lblID = (Label)row.FindControl("lblID"); TextBox textName = (TextBox)row.Cells[0].Controls[0]; TextBox textadd = (TextBox)row.Cells[1].Controls[0]; // TextBox textc = (TextBox)row.Cells[2].Controls[0]; GridView1.EditIndex = -1; GridView1.DataBind(); conn.Open(); SqlCommand cmd = new SqlCommand("update empdet set name='" + textName.Text + "',salary='" + textadd.Text + "'where id='" + id + "'", conn); cmd.ExecuteNonQuery(); conn.Close(); gvbind(); } protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) { GridView1.PageIndex = e.NewPageIndex; gvbind(); } protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e) { GridView1.EditIndex = -1; gvbind(); } protected void Add_Click(object sender, EventArgs e) { GridView1.Visible = true; //createnewrow(); ds.Rows.Add(TextBox1.Text, TextBox2.Text, TextBox3.Text); TextBox1.Text = ""; TextBox2.Text = ""; TextBox3.Text = ""; GridView1.DataSource = ds; GridView1.DataBind(); GridView1.DataSource = null; } protected void Save_Click(object sender, EventArgs e) { // foreach (DataGridViewRow row in GridView1.Rows) for (int i = 0; i < GridView1.Rows.Count; i++) { string constring = @"Data Source=ADMIN-PC\SQLEXPRESS;Initial Catalog=task;User ID=sa;Password=ups"; using (SqlConnection con = new SqlConnection(constring)) { using (SqlCommand cmd = new SqlCommand("INSERT INTO empdet VALUES( @id,NEWID(),@name, @salary,getdate())", con)) { cmd.Parameters.AddWithValue("@id", GridView1.Rows[i].Cells[0].Text); cmd.Parameters.AddWithValue("@name", GridView1.Rows[i].Cells[1].Text); cmd.Parameters.AddWithValue("@salary", GridView1.Rows[i].Cells[2].Text); //cmd.Parameters.AddWithValue("@Name", row.Cells["Name"].Value); //cmd.Parameters.AddWithValue("@Address", row.Cells["Address"].Value); con.Open(); cmd.ExecuteNonQuery(); con.Close(); } } } } } }
Что я уже пробовал:
я пытаюсь отредактировать строку и обновить,удалить. но я получаю ошибку при редактировании и удалении обнаруженных ошибок. пожалуйста, помогите мне решить эту проблему
Laxmidhar tatwa technologies
ds берется как глобальный, так и локальный vsriable .global изменение на dt, то есть для таблицы данных
Member 13650918
использование системы;
использование системы.Коллекции.Общий;
использование System.Linq;
использование системы.Сеть;
использование System.Web.UI;
используя системы.Веб.Пользовательского интерфейса.WebControls;
использование System.Data;
используя системы.Данных.Поставщики sqlclient;
пространство имен EmpGrid
{
общественный разделяемого класса файл webform1 : система.Веб.Пользовательского интерфейса.Страницы
{
DataTable dt = новый DataTable();
private SqlConnection conn = new SqlConnection(@"источник данных=ADMIN-PC\SQLEXPRESS;начальный каталог=задача;идентификатор пользователя=sa;пароль=ups");
охраняемых недействительными в(объект отправителя, EventArgs в электронной)
{
ДТ.колонны.Добавить("id");
// если (!ДС.Столбцы.Содержит("имя"))
ДТ.колонны.Добавить("имя");
// если (!ДС.Столбцы.Содержит("зарплата"))
ДТ.колонны.Добавить("зарплата");
если (!это.IsPostBack)
{
// если (!ДС.Столбцы.Содержит("id"))
//ДТ.колонки.Добавить("id");
//// если (!ДС.Столбцы.Содержит("имя"))
//ДТ.колонки.Добавить("имя");
//// если (!ДС.Столбцы.Содержит("зарплата"))
//ДТ.колонки.Добавить("зарплата");
Управления gridview1.Источник данных = ДТ;
Управления gridview1.Привязку();
// gvbind();
}
}
охраняемых недействительными gvbind() {
Коннектикут.Открыть();
SqlCommand cmd = new SqlCommand("Select * from empdet", conn);
SqlDataAdapter da = новый SqlDataAdapter(cmd);
DataSet ds = новый набор данных();
да.Заполнить(ДС);
Коннектикут.Закрывать();
if (ds.Tables[0].Rows.Count > 0) {
Управления gridview1.Источник данных = ДС;
Управления gridview1.Привязку();
} еще {
//ds.Tables[0].Rows.Add(ds.Таблицы[0].NewRow());
Управления gridview1.Источник данных = новая строка[] { };
Управления gridview1.Привязку();
}
}
охраняемых недействительными GridView1_RowDeleting(объект отправителя, GridViewDeleteEventArgs е)
{
GridViewRow row = (GridViewRow)GridView1.Rows[e.Параметр rowindex];
Label lbldeleteid = (метка)строка.FindControl("lblID");
Коннектикут.Открыть();
SqlCommand cmd = new SqlCommand("удалить из empdet, где id='" + конвертировать.ToInt32(GridView1.DataKeys[e.Параметр rowindex].Значение.ToString()) + "'", conn);
УМК.Метод executenonquery();
Коннектикут.Закрывать();
gvbind();
}
охраняемых недействительными GridView1_RowEditing(объект отправителя, GridViewEditEventArgs е)
{
Управления gridview1.EditIndex = е.NewEditIndex;
gvbind();
}
охраняемых недействительными GridView1_RowUpdating(объект отправителя, GridViewUpdateEventArgs е)
{
int id = конвертировать.ToInt32(GridView1.DataKeys[e.Параметр rowindex].Значение);
GridViewRow row = (GridViewRow)GridView1.Rows[e.Параметр rowindex];
Label lblID = строка (Label).FindControl("lblID");
TextBox textName = (текстовое поле)строка.Клетки[1].Элементы управления[0];
TextBox textadd = (текстовое поле)строка.Ячейки[2].Элементы Управления[0];
// TextBox textc = (текстовое поле)строка.Ячейки[2].Элементы Управления[0];
Управления gridview1.EditIndex = -1;
Управления gridview1.Привязку();
Коннектикут.Открыть();
SqlCommand cmd = new SqlCommand("update empdet set name='" + textName.Текст + "',зарплата='" + textadd.Текст + "'где ID='" + идентификатор + "'", соед);
УМК.Метод executenonquery();
Коннектикут.Закрывать();
gvbind();
}
охраняемых недействительными GridView1_PageIndexChanging(объект отправителя, GridViewPageEventArgs е)
{
Управления gridview1.Pageindex было = Е.NewPageIndex;
gvbind();
}
охраняемых недействительными GridView1_RowCancelingEdit(объект отправителя, GridViewCancelEditEventArgs е)
{
Управления gridview1.EditIndex = -1;
gvbind();
Member 13650918
теперь добавленная стоимость. но добавляется только одна строка. я просто хочу добавить несколько записей и сохранить их в базе данных
Laxmidhar tatwa technologies
В изменении функции row_deleting
Конвертировать.toint32(lbldeleteid.текст)
Laxmidhar tatwa technologies
Возьмите за пределами сетки три текстовых поля
С кнопку и в событие кнопки клик
Добавьте строку в dt глобальную и привяжите сетку