2017-06-29 48 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

相關問題