我正在尝试从数据库表中填充数据表。填充后我使用asp:GridView来显示数据。
问题是我在从数据库中填充但在绑定数据之前尝试编辑某些行。
我对c#很新,所以我无法让它工作。我的代码没有更新任何内容。
private void BindGridviewFileData()
{
string ConnectionStringName = WebConfigurationManager.ConnectionStrings["LocalConnection"].ConnectionString;
try
{
using (SqlConnection sqlConn = new SqlConnection(ConnectionStringName))
{
using (SqlCommand sqlCmd = new SqlCommand())
{
sqlCmd.CommandText = "SELECT * FROM VISUALISATION";
sqlCmd.Connection = sqlConn;
sqlConn.Open();
SqlDataReader objDataReader = sqlCmd.ExecuteReader();
DataTable objDataTable = new DataTable();
objDataTable.Load(objDataReader);
foreach (DataRow row in objDataTable.Rows)
{
if (row["lineNumber"] == "1")
{
row["BATCH_NO"] = "new Value";
}
}
gvSubjectDetails.DataSource = objDataTable;
gvSubjectDetails.DataBind();
sqlConn.Close();
}
}
}
catch { }
}
答案 0 :(得分:2)
lineNumber
检查可能需要进行int
检查;请注意,目前它实际上正在进行object
检查,它只支持引用相等 - 它永远不会匹配,即使值是string
的{{1}},因为数据库中的值将成为与代码中的实习文字"1"
不同的string
实例。因此,第一次检查可能需要:
"1"
您在评论中询问如何使用字符串执行此操作;在这种情况下,非常相似:
if((int)row["lineNumber"] == 1)
这现在有效,因为if((string)row["BATCH_NO"] == "some value")
有一个重载的==
运算符,它执行基于值的相等性测试,而不是基于参考的相等性测试。
注意:您也可能会使用:
string==string
但我发现早期版本更清晰。