首页上一页 1 下一页尾页 2 条记录 1/1页
课本问题提问《ASP.NET从入门到精通》
发表在ASP.NET图书答疑
2009-02-08
是否精华
是
否
版块置顶:
是
否
老师您好:
我在做 161页 9.3.3 使用Command 对象修改数据 事例时
使用的书上的代码 我自己建立的数据库文件
可是在做前面的显示 和 添加时 都成功了
在做修改时无法修改 就是说 打开时显示的什么数据 点 修改后 依旧是什么 没有变化 也就是没有成功更新了
我的代码:
这是一个填充所有数据的方法
/// <summary>编写 填充方法
/// 编写 填充方法
/// </summary>
private void fillDataGridView()
{
//将方法赋值给con 等同于SqlConnection con = new SqlConnection(sqlconString);
SqlConnection con = GetConnection();
con.Open();
//拼SQL语句
string sql = "select * from yuanGong";
//创建 Command
SqlCommand com = new SqlCommand(sql, con);
//创建 DataAdapter
SqlDataAdapter dataAdapter = new SqlDataAdapter(com);
//创建 DataSet
DataSet dataSet = new DataSet();
//填充 DataSet
dataAdapter.Fill(dataSet);
//填充 GridView 控件
GridView1.DataSource = dataSet;
//声明 ID 列为标识列
GridView1.DataKeyNames = new string[] {"ID"};
//将数据绑定到 GridView 控件
GridView1.DataBind();
//释放资源
dataAdapter.Dispose();
dataSet.Dispose();
con.Close();
}
这是GridView控件相关代码:
/// <summary>
/// 编辑
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
this.fillDataGridView();
}
/// <summary>
/// 更新
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
int id = Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Value.ToString());
string name = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[2].Controls[0])).Text.ToString();
string sql = "update yuanGong set Name='" + name + "' where ID=" + id;
SqlConnection con = GetConnection();
con.Open();
SqlCommand com = new SqlCommand(sql,con);
com.ExecuteNonQuery();
com.Dispose();
con.Dispose();
GridView1.EditIndex = -1;
this.fillDataGridView();
}
/// <summary>
/// 取消
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
GridView1.EditIndex = -1;
this.fillDataGridView();
}
我在做 161页 9.3.3 使用Command 对象修改数据 事例时
使用的书上的代码 我自己建立的数据库文件
可是在做前面的显示 和 添加时 都成功了
在做修改时无法修改 就是说 打开时显示的什么数据 点 修改后 依旧是什么 没有变化 也就是没有成功更新了
我的代码:
这是一个填充所有数据的方法
/// <summary>编写 填充方法
/// 编写 填充方法
/// </summary>
private void fillDataGridView()
{
//将方法赋值给con 等同于SqlConnection con = new SqlConnection(sqlconString);
SqlConnection con = GetConnection();
con.Open();
//拼SQL语句
string sql = "select * from yuanGong";
//创建 Command
SqlCommand com = new SqlCommand(sql, con);
//创建 DataAdapter
SqlDataAdapter dataAdapter = new SqlDataAdapter(com);
//创建 DataSet
DataSet dataSet = new DataSet();
//填充 DataSet
dataAdapter.Fill(dataSet);
//填充 GridView 控件
GridView1.DataSource = dataSet;
//声明 ID 列为标识列
GridView1.DataKeyNames = new string[] {"ID"};
//将数据绑定到 GridView 控件
GridView1.DataBind();
//释放资源
dataAdapter.Dispose();
dataSet.Dispose();
con.Close();
}
这是GridView控件相关代码:
/// <summary>
/// 编辑
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
this.fillDataGridView();
}
/// <summary>
/// 更新
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
int id = Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Value.ToString());
string name = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[2].Controls[0])).Text.ToString();
string sql = "update yuanGong set Name='" + name + "' where ID=" + id;
SqlConnection con = GetConnection();
con.Open();
SqlCommand com = new SqlCommand(sql,con);
com.ExecuteNonQuery();
com.Dispose();
con.Dispose();
GridView1.EditIndex = -1;
this.fillDataGridView();
}
/// <summary>
/// 取消
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
GridView1.EditIndex = -1;
this.fillDataGridView();
}