c# - ASP.Net 如何从 gridview C# 更新数据库

标签 c# sql database sharepoint

您将如何从 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

Method Nr1

Method Nr2

编辑 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/

相关文章:

c# - 进程无法访问该文件,因为它正被 Directory.Move() 上的另一个进程使用

c# - Jenkins 未能建立C#项目

c# - NavigationService 提示从未附加到任何 View 的类执行 "FileNotFound"

sql - 在 SQL Server 中计算滚动月份值

python - 使用 sqlite 在 python 中使用 cursor.execute 和 cursor.fetchall 的问题

java - 是一次性从数据库获取所有需要的数据更好,还是更频繁地发出请求更好?

c# - WPF 向后查看 ListView

javascript - 防止 JavaScript/Node.js 中的 SQL 注入(inject)

sql - 按 where 子句值的顺序检索行

java - PreparedStatements 和绩效