我有语法错误,我不知道如何解决它。我习惯了 VB,但我不知道 C# 上的等效代码。 [script_id] 不会被识别为来自 PostViewModel 的模式。我不知道是否允许在大括号内包含 IF 语句。
//A class inside the Models Folder
public class PostViewModel
{
public string script_id { get; set; }
public string script_code { get; set; }
public string status { get; set; }
}
//A class inside Models Folder
public class ScriptConstants
{
public const string script_id = "script_id";
public const string script_code = "script_code";
public const string status = "status";
}
//Part of the Home controller accessing an oracle database and will read the row
while (reader.Read())
{
var Scripts = new PostViewModel
{
If (ColumnExists(reader, ScriptConstants.script_id) == true)
{
script_id = reader(ScriptConstants.script_id)
}
};
}
private bool ColumnExists(IDataReader reader, string columnName)
{
for (int i = 0; i < reader.FieldCount; i++)
{
if (reader.GetName(i).Equals(columnName, StringComparison.InvariantCultureIgnoreCase))
{
return true;
}
}
return false;
}
我习惯在 VB 上使用WITH 语句,但我知道 C# 中没有等效的代码。也许有人可以纠正我的代码来解决这个问题。另外,常量类文件位于 Models 文件夹内,这是正确的做法吗?
while
循环中的内部代码需要这样读:
var Scripts = new PostViewModel();
if (ColumnExists(reader, ScriptConstants.script_id))
{
Scripts.script_id = reader(ScriptConstants.script_id);
}