2017-06-29 44 views
0

这个问题有点类似,并与我之前的问题How to get data in an sql foreign key using asp.net entity framework?有关,所以我将使用相同的SQL Server表。如何使用asp.net获取SQL Server外键中的数据?

这次,我不想通过实体框架访问外键值,我想知道如何在像这样的常规SQL脚本中执行此操作(请注意,我正在讨论的脚本位于string.Format内部) :

public static void getRowNumber(string brand) 
{ 
    string query = string.Format("SELECT COUNT(*) FROM stringInstrumentItem WHERE brandId LIKE @brand"); 

    conn1.Open(); 

    command1.CommandText = query; 
    command1.Parameters.Add(new SqlParameter("brand", brand)); 

    Int32 count = (Int32)command1.ExecuteScalar(); 

    conn1.Close(); 

    command1.Parameters.Clear(); 

    AddASPXAndCSFile.X = count; 
} 

只是为了回顾一下,我有两个SQL Server表称为stringInstrumentItembrand。我参考表brand的主键在表stringInstrumentItem中创建了外键。所以我试图访问表brandstringInstrumentItem中的列name

正如您所看到的,我试图访问表brandbrandId中的值,该值不起作用。

希望你们能帮助我解决这个问题。干杯!

+0

'brandId'的数据类型是什么?通常一个'ID'列是int。 –

+2

BrandID听起来像一个整数,你不能这样做 – GuidoG

+0

我相信你需要在这个新的SqlParameter(“@ brand”,品牌)''''符号来访问参数。 –

回答

2

如果我正确理解你的问题,这似乎是一个简单的查询 -

SELECT COUNT(*) FROM stringInstrumentItem 
WHERE brandId IN (SELECT brandId FROM brand WHERE name LIKE @brand) 

请你@%使用(根据您的要求)

command1.Parameters.Add(new SqlParameter("@brand", "%" + brand + "%")); 
+0

哦,我明白了。我不知道你可以像这样嵌套sql脚本。很酷的信息。 – RockStar

+0

嗨!如果你有兴趣回答另一个问题,这里的链接https://stackoverflow.com/questions/44847998/how-to-get-data-of-sql-foreign-key-in-asp-net-repeater – RockStar

+0

你好!不幸的是,我已经删除了有关外键的问题,因为我决定尝试其他解决方案,但如果您对更多问题感兴趣,我还有一个问题,请检查一下,如果可用https://stackoverflow.com/questions/44872117/asp -net图像 - 不工作?noredirect = 1#comment76723005_44872117 – RockStar

相关问题