C# 变量设置为sql列名

C# 变量设置为sql列名,c#,sql-server,razor,asp.net-webpages,C#,Sql Server,Razor,Asp.net Webpages,我有 表“Stock”有图像数据列ImgF1、ImgF2、…、ImgF12。 现在我想检索这些图像,如下所示 var car = db.QuerySingle("SELECT * FROM Stock WHERE Id = @0", carId); @对于(int i=1;i

我有

表“Stock”有图像数据列ImgF1、ImgF2、…、ImgF12。 现在我想检索这些图像,如下所示

var car = db.QuerySingle("SELECT * FROM Stock WHERE Id = @0", carId);
    @对于(int i=1;i<12;i++){ var imageName=“ImgF”+i; if(car@imageName!=null){
  • }否则{ } }

问题是car@imageName或car.imageName不起作用,因为imageName不是列名,只是列名的变量


所以,如果你有任何想法,我将不胜感激

尝试更改此选项:

<ul>
@for(int i = 1; i < 12; i++){
    var imageName = "ImgF" + i;
    if(car.@imageName != null){
        <li>
            <img class="small_image" alt="image" src="@Href("~/Cars/XSThumbnail",carId, new{index = i})">
        </li>
    }else{

    }
}


祝你好运。

在引擎盖下,
QuerySingle
方法返回一个实例,其中包含列名:

if(car[imageName] != null){
(int i=1;i<12;i++){ var imageName=“ImgF”+i; 如果(汽车[imageName]!=null){
  • }否则{ } }
    感谢您的提示,但是,我想使用同一变量“imageName”检索11列,并在处理图像之前确认它们是否为空。没问题,很高兴我们能提供帮助。如果其中一个答案对你有帮助,请将其标记为已接受:)祝你好运。
    if(car[imageName] != null){
    
    @for(int i = 1; i < 12; i++){
        var imageName = "ImgF" + i;
        if(car[imageName] != null){
            <li>
                <img class="small_image" alt="image" 
                     src="@Href("~/Cars/XSThumbnail",carId, new{index = i})">
            </li>
        }else{
    
        }
    }