在 C# 上使用类变量时出现语法错误

问题描述 投票:0回答:1

我有语法错误,我不知道如何解决它。我习惯了 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 文件夹内,这是正确的做法吗?

c# asp.net-core-mvc
1个回答
0
投票

while
循环中的内部代码需要这样读:

var Scripts = new PostViewModel();
if (ColumnExists(reader, ScriptConstants.script_id))
{ 
   Scripts.script_id = reader(ScriptConstants.script_id);
}
© www.soinside.com 2019 - 2024. All rights reserved.