C# 如何使用dapper从数据库返回字符串

C# 如何使用dapper从数据库返回字符串,c#,dapper,C#,Dapper,我试过了,但它给出了这个错误 必须声明标量变量“@imageid” 控制器 [HttpGet] [Route("download/{id:int}")] public String Getfiles(int imageid) { return _ShopDataProvider.DownloadImage(imageid); } C类 public String DownloadImage(int imageid) {

我试过了,但它给出了这个错误

必须声明标量变量“@imageid”

控制器

    [HttpGet]
    [Route("download/{id:int}")]
    public String Getfiles(int imageid)
    {

        return _ShopDataProvider.DownloadImage(imageid);

    }
C类

public String  DownloadImage(int imageid)
    {
        using(IDbConnection dbConnection = Connection)
        {

            string sQuery0 = "SELECT path FROM Shop WHERE ShopId = @imageid";
            dbConnection.Open();
            String Path = dbConnection.QueryFirstOrDefault<String>(sQuery0, new { ShopId = imageid });

            return Path;
        } 
    }
公共字符串下载图像(int-imageid)
{
使用(IDbConnection dbConnection=Connection)
{
string sQuery0=“选择ShopId=@imageid所在店铺的路径”;
dbConnection.Open();
String Path=dbConnection.QueryFirstOrDefault(sQuery0,new{ShopId=imageid});
返回路径;
} 
}

您在SQL查询中声明了一个名为
@imageid
的参数,但没有为其提供值。您正在为参数
@ShopID
new{ShopID=imageid}
)提供一个值,您的SQL查询不使用该值

new{ShopId=imageid}
更改为
new{imageid=imageid}


请参阅。

您在SQL查询中声明了一个名为
@imageid
的参数,但没有为其提供值。您正在为参数
@ShopID
new{ShopID=imageid}
)提供一个值,您的SQL查询不使用该值

new{ShopId=imageid}
更改为
new{imageid=imageid}


请参阅。

我的数据库中有值。错误已修复,但当我将ShopId=@imageid所在的商店的选择路径更改为SELECT ShopName..etc
string path=dbConnection.QueryFirstOrDefault(sQuery0,new{imageid=1})时,返回字符串为null它返回一个值,但
字符串路径=dbConnection.QueryFirstOrDefault(sQuery0,new{imageid=imageid})它不会返回value@DulangaHeshan使用调试器。查看
imageid
的值。它有你期望的值吗?是的,我修复了错误是
[Route(“download/{id:int}”)]
这里非常感谢兄弟们。我的数据库中有一些值错误是修复的,但当我从ShopId=@imageid的商店更改选择路径以选择ShopName..etc
string path=dbConnection.QueryFirstOrDefault时返回字符串为空(sQuery0,new{imageid=1});
它返回一个值,但
字符串路径=dbConnection.QueryFirstOrDefault(sQuery0,new{imageid=imageid});
它不返回value@DulangaHeshan使用调试器。查看
imageid
的值。它是否具有您期望的值?是,我修复了错误为
[Route](“下载/{id:int}”)]
这里非常感谢兄弟