在我的页面上,我设置了一个包含几列的GridView.我编写了更新,删除和插入方法.当我的GridView绑定其数据时,会调用以下方法:
protected void GridViewAutomat_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
if(e.Row.RowState != DataControlRowState.Edit)
{
//some code
}
}
}
Run Code Online (Sandbox Code Playgroud)
我的第二个if语句的问题是,当我的GridView进入编辑模式时(当我想更新我的GridView中的记录时)它没有捕获到RowState 备用| 编辑看起来像这样(这是我调用Update方法后RowState的方式):
当我尝试将两个RowStates分开组合时,它也不会工作:
if(e.Row.RowState != DataControlRowState.Edit &&
e.Row.RowState != DataControlRowState.Alternate)
Run Code Online (Sandbox Code Playgroud)
当行不处于编辑(备用|编辑)模式时,应该执行if语句中的代码,这就是我!=作为运算符的原因
有谁知道我怎么能抓住组合模式Alternate | 一起编辑和编辑模式?
我有一个具有 3 个条件的函数:
DataRow rowstate == Added!DataRow HasVersion(DataRowVersion.Original)DataRow rowstate == modified我的问题是第二个,有人能解释一下吗? 它与第一个条件有何不同?
我想从数据表中删除所有行状态属性值已删除的行。
DataTable dt;
dt.Clear(); // this will not set rowstate property to delete.
Run Code Online (Sandbox Code Playgroud)
目前我正在遍历所有行并删除每一行。
有什么有效的方法吗?我不想在 SQL Server 中删除我想使用 DataTable 方法。
我从Excel电子表格中选择*到dt.我想获取这些值并更新SQL表.(SQL表存在是因为从原始Excel电子表格手动导入到SQL,具有主键设置.用户更新excel表,我需要更新SQL值.)我将dt.RowState设置为已修改努力调用更新.我没有错误,但SQL表没有更新.(以前的测试显示我的SQL权限和连接是好的,我可以修改表.)
connectionToSQL = new SqlConnection(SQLConnString);
connectionToSQL.Open();
var cmd = new SqlCommand("SELECT * FROM TAGS$",connectionToSQL);
var da = new SqlDataAdapter(cmd);
var b = new SqlCommandBuilder(da);
foreach (DataRow r in dt.Rows)
{
r.SetModified();
}
da.Update(dt);
Run Code Online (Sandbox Code Playgroud) c# ×4
rowstate ×4
datatable ×2
.net ×1
asp.net ×1
data-binding ×1
dataadapter ×1
datarow ×1
gridview ×1
sql-server ×1