如何在 C# 中访问 sqldatareader 的特定列
本文关键字:sqldatareader 访问 | 更新日期: 2023-09-27 18:33:02
我正在编写一个将调用存储过程的方法。此存储过程将返回包含属性的数据集。我需要更改一个特定属性的值。我的代码是这样的。
try
{
cmdPendingStatus.CommandType = CommandType.StoredProcedure;
SqlDataReader pendingStatusList;
List<string> lstPendingRequestId = new List<string>();
try
{
conn.Open();
pendingStatusList = cmdPendingStatus.ExecuteReader();
if (pendingStatusList.HasRows)
{
while (pendingStatusList.Read())
{
lstPendingRequestId.Add(pendingStatusList.GetString(0));
}
}
}
cmdPendingStatus.CommandType=CommandType.StoredProcedure;
SqlDataReader pendingStatusList;
List<string> lstPendingRequestId = new List<string>();
try
{
conn.Open();
pendingStatusList = cmdPendingStatus.ExecuteReader();
if (pendingStatusList.HasRows)
{
while (pendingStatusList.Read())
{
if(condition here)
{
lstPendingRequestId.add("NEW VALUE")
}
else
{
lstPendingRequestId.Add(pendingStatusList.GetString(0));
}
}
}
}
希望这对你有帮助
要在 pendingStatusList["ColumnName"] 中指定的列名
try
{
conn.Open();
pendingStatusList = cmdPendingStatus.ExecuteReader();
if (pendingStatusList.HasRows)
{
while (pendingStatusList.Read())
{
lstPendingRequestId.Add(pendingStatusList["ColumnName"]);
}
}
}
您无法在 ExecuteReader 中更改属性,但可以读取如下值:
var value = Reader[1];
如果这是您要执行的操作,则始终可以更改 var 的值并编写另一个存储过程来保存更改。
try
{
DataSet dsStatusPending = new DataSet();
StoredProcedure cmdPendingStatus = new StoredProcedure();
cmdPendingStatus.ProcName = "sp_Name";
dsStatusPending = DbManager.ExecuteDataSet(cmdPendingStatus);
if (dsStatusPending.Tables[0].Rows.Count > 0)
{
foreach (DataRow rowToInsert in dsStatusPending.Tables[0].Rows)
{
if (rowToInsert["ColumnName"] != System.DBNull.Value && rowToInsert["ColumnName"].ToString().ToUpper() == "I")
{
//User Defined Code Goes Here
}
}
}
这就是我进入特定列的方式。