0

我在 ASP.Net 页面中使用了一些存储过程。我经常在引号之间使用行号或行的名称,但我找不到按名称访问内连接表的方法:

    Dim conn As New SqlConnection("my_connection_string")
    Dim mycommand As New SqlCommand("last_played_songs", conn)
    mycommand.CommandType = CommandType.StoredProcedure
    mycommand.Parameters.AddWithValue("@userid", userid)
    conn.Open()
    Dim dr As SqlDataReader = mycommand.ExecuteReader()
    While dr.Read()

        /* What I have: */
        Dim artist_image As String = dr(39) & "" & "/cover.jpg"      

        /* What I want. Let's say I called my table ArtistProfile under inner join: */
        Dim artist_image As String = dr("ArtistProfile.uniqueID") & "/cover.jpg"

   End While

似乎使用与内部联接一起使用的名称不是好的语法,但我找不到如何命名它以便能够访问“内部联接”表。数字索引的问题在于,如果 4-5 个连接表结构中的一个发生更改,则所有索引都在更改。

4

1 回答 1

2

别名存储过程中的字段名称以获得所需的输出

select 
  TableA.Name as 'TableA.Name',
  TableA.Age as 'TableA.Age',
  TableB.Address as 'TableB.Address'
from
  TableA INNER JOIN TableB ON TableA.ID = TableB.ID

-- Example using table alias in SQL
select 
  a.Name as 'TableA.Name',
  a.Age as 'TableA.Age',
  b.Address as 'TableB.Address'
from
  TableA a INNER JOIN TableB b ON a.ID = b.ID

列的默认名称是字段名本身,因此在您的示例中它应该只是 dr("uniqueID")

于 2012-11-27T03:04:20.703 回答