您将如何从 GridView 更新 SQL 数据库? (记录更新后)
使用 - SharePoint -> 应用程序页面 - 我知道,SharePoint ....“让基本的事情变得更基本,让困难的事情变得不可能”(旁边甚至没有 SQLDatasource 控件,如果你必须自己添加它你想要它 - 不知道他们是否不想让你在项目中添加一个或其他......)
I have data being displayed in the gridview , 并启用了
AutoGenerateEditButton="True"
在 GridView 中。 gridview 的数据源是我从数据库中填充的数据集。
我认为如果没有绑定(bind)到您的 gridview 的 SQLDatasource,您将不得不再次连接到数据库并手动更新数据库。 但是除了绑定(bind)到自动更新的 gridview 的 SQLDataSource 之外,我似乎找不到任何方法来执行此操作。
执行此操作的方法,但需要绑定(bind)到 gridview 的 SQLDatasource
编辑 GridView 后,您将如何更新数据库?
--更新解决方案--添加了一些修改。谢谢
protected void Page_Load(object sender, EventArgs e)
{
int employeerId = 1;
//Add all the employees to the list to view them.
string query = "select emp.Name as [Employee Name], em.* from EthicsManagement em join EmployeeTable emp on em.employeeId = emp.employeeId where emp.managerId =" + employeerId;
DataSet ds = dbConn.returnSqlDataset(query);
grdViewDetails.DataSource = ds;
grdViewDetails.DataBind();
int x = grdViewDetails.Columns.Count;
//Hide the columns.
grdViewDetails.DataBind();
if (grdViewDetails.Columns.Count > 0)
{
grdViewDetails.Columns[2].Visible = false;
grdViewDetails.Columns[3].Visible = false;
}
else
{
grdViewDetails.HeaderRow.Cells[0].Visible = false;
foreach (GridViewRow gvr in grdViewDetails.Rows)
{
gvr.Cells[2].Visible = false;
gvr.Cells[3].Visible = false;
}
}
}
protected void grdViewDetails_RowEditing1(object sender, GridViewEditEventArgs e)
{
string query = "select emp.Name as [Employee Name], em.* from EthicsManagement em join EmployeeTable emp on em.employeeId = emp.employeeId where emp.managerId =" + 1;
grdViewDetails.EditIndex = e.NewEditIndex;
//e.newedit index:- will be provide index of row for which edit button is selected
grdViewDetails.DataSource = dbConn.returnSqlDataset(query);
grdViewDetails.DataBind();
}
protected void grdViewDetails_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
string query = "select emp.Name as [Employee Name], em.* from EthicsManagement em join EmployeeTable emp on em.employeeId = emp.employeeId where emp.managerId =" + 1;
foreach (TableCell cell in grdViewDetails.Rows[e.RowIndex].Cells)
{
if (cell.Controls[0] is TextBox)
{
TextBox textbox = (TextBox)cell.Controls[0];
string value = textbox.Text;
}
else
{
if (cell.Controls[0] is CheckBox)
{
CheckBox chkBoxWeek = (CheckBox)cell.Controls[0];
Boolean checkStatus = chkBoxWeek.Checked;
}
}
}
最佳答案
行编辑:当用户点击编辑按钮时,将执行 GridView 的行编辑事件。该事件将提供行索引
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
databind();
}
行更新:这将执行回发,将执行 GridView 的行更新事件过程
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
Label l = (Label)GridView1.Rows[e.RowIndex].FindControl("Label1");
TextBox t1 = (TextBox)GridView1.Rows[e.RowIndex].FindControl("TextBox1");
TextBox t2 = (TextBox)GridView1.Rows[e.RowIndex].FindControl("TextBox2");
FileUpload fu = (FileUpload)GridView1.Rows[e.RowIndex].FindControl("FileUpload1");
string fpath = Server.MapPath("images");
string fname = fu.FileName;
string concat = fpath + "\\" + fname;
fu.SaveAs(concat);
cmd = new SqlCommand("update userdata set username='" + t1.Text + "', password='" + t2.Text + "' , Image = '" + "~/images/"+ fu.FileName + "' where userid='" + Convert.ToInt32(l.Text) + "'", con);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
GridView1.EditIndex = -1;
databind();
}
关于c# - ASP.Net 如何从 gridview C# 更新数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16009857/