我正在尝试从数据库表填充数据表。填充后,我正在使用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 { }
}
该lineNumber
检查可能需要有一个int
检查; 请注意,当前它实际上是在进行object
检查,该检查仅支持引用相等-即使值是string
of "1"
,它也永远不会匹配,因为数据库中的值将与代码中string
的中间文字成为不同的实例"1"
。因此,第一个检查可能需要是:
if((int)row["lineNumber"] == 1)
您在注释中询问如何使用字符串;在这种情况下,非常相似:
if((string)row["BATCH_NO"] == "some value")
现在这是有效的,因为有一个==
for的重载运算符string==string
,它执行基于值的相等性测试,而不是基于引用的相等性测试。
注意:您可能还可以使用:
if(Equals(row["BATCH_NO"], "some value"))
但我发现更早的版本更清晰。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句