gpt4 book ai didi

c# - 单击编辑按钮后从 GridView 获取单元格值第 2 轮

转载 作者:太空宇宙 更新时间:2023-11-03 14:49:51 24 4
gpt4 key购买 nike

我不久前发布了这个,但不,我必须更新问题以确保我得到正确的答案。

我有一个 GridView。我需要根据 GridView 的值更新 SQL 表。当用户单击 GridView 上的默认编辑按钮时,更改他们所做的任何更改,然后单击更新。这是我遇到问题的地方。我尝试了多个 OnRowEditing、OnRowUpdating、OnRowUpdate 作为按钮控件。

这是我使用的代码。

protected void gvReviewedPolicy_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
DateTime dateTime = DateTime.Now;

//GridViewRow editRow = gvReviewedPolicy.Rows[gvReviewedPolicy.EditIndex];
//string Emailed = editRow.Cells[7].Text;
//string UniqClient = editRow.Cells[1].Text;
//string UniqPolicy = editRow.Cells[3].Text;

string UniqClient = gvReviewedPolicy.SelectedRow.Cells[2].Text;
string UniqPolicy = gvReviewedPolicy.SelectedRow.Cells[3].Text;
//string Email = Emailed.ToString();
//string dt = dateTime.ToString();
//string Up = UniqClient.ToString();
MessageBox.Show(UniqClient);
MessageBox.Show(UniqPolicy);
//MessageBox.Show(dt);

string query = "UPDATE [Reviewed_Renewal_Policy] SET [DateUpdated] = @dateTime where ([UniqClient] = @UniqClient) AND ([UniqPolicy] = @UniqPolicy)";

using (SqlConnection conn = new SqlConnection("Data Source=GTU-BDE01;Initial Catalog=TestDB;Integrated Security=True"))
{
using (SqlCommand comm = new SqlCommand(query, conn))
{
comm.Parameters.AddWithValue("@UniqClient", UniqClient);
comm.Parameters.AddWithValue("@UniqPolicy", UniqPolicy);
//comm.Parameters.AddWithValue("@Emailed", Emailed);
comm.Parameters.AddWithValue("@dateTime", dateTime);
conn.Open();
comm.ExecuteNonQuery();
conn.Close();
}
}
}

我有一些注释掉了,因为我在尝试不同的东西。但是,上面写着

的代码
GridViewRow editRow = gvReviewedPolicy.Rows[gvReviewedPolicy.EditIndex];
string Emailed = editRow.Cells[7].Text;
string UniqClient = editRow.Cells[1].Text;
string UniqPolicy = editRow.Cells[3].Text;

它应该在按下 UPDATE 按钮时访问这些单元格中的值。但是,使用 MessageBox.Show 返回空白。

有人知道我如何在点击“编辑”然后点击默认的“更新”按钮后捕获这些值吗?

最佳答案

过去我曾尝试通过实现 DataGridView 子类(这允许您访问所有内容)使 Winforms Datagrid 可用于“直写”,但是由于不可变数据库和队列事务进入 View ,我的 Access-flavor DataGrid 没有在现代范式中幸存下来。现在我倾向于支持 ASP.NET MVC 5 来“编辑”数据库。

无论如何,您是否考虑过连接 DataSource ?您不必访问单元格..您可以使用像

这样的连接进行更新

private SqlDataAdapter daGrid = new SqlDataAdapter();

而这种方式,需要自己填写细节,完整的代码由几个类组成,太大了,无法贴出,

    protected void dataGridView1_KeyUp(object sender, KeyEventArgs e)
{
DataGridView dgv = (DataGridView)sender;
/// .. perform actions according to keyboard events ..
/// .. for example below one ..
}

public override void UpdateAfterEditGrid(DataSet ds, DataGridView dataGridView1, bool DoRestoreCursor)
{
if (daGrid != null)
{
if (conn.State == ConnectionState.Closed) conn.Open();
dataGridView1.EndEdit();
try
{
if (ds == null)
{
//DataGridView dgv = dataGridView1;
//Console.WriteLine("Go datasource update .. " + dgv[cColumnIndex, cRowIndex].Value);
daGrid.Update((DataTable)dataGridView1.DataSource);
}
else daGrid.Update(ds);
LoadGridRestoreCursor(dataGridView1, DoRestoreCursor);
}
catch { ErrorReporting.ErrorMessage("== cannot update this content =="); }
}
}

关于c# - 单击编辑按钮后从 GridView 获取单元格值第 2 轮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52301728/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com