英文:
How to select multiple case in asp.net
问题
我正在进行一个项目,该项目使用Visual Basic编写ASP.NET代码。当我在ASP.NET中使用选择案例语句时,我有些困惑。我的ASP.NET连接到SQL Server数据库,我有一个名为“Person”的表,它有“Id”(decimal)、“Name”(string)和“Nationality”(string)字段。在该表中,有些人有2个或更多国籍,我为“Nationality”编写了选择案例,例如,Mary有泰国和越南国籍,所以我写了如下代码。
Sql Server数据库表:
```plaintext
Id Name Nationality
1 Mary 1,2
2 Andrew 4
3 Ken 3
期望结果:
1 Mary Vietnam,Thai
英文:
I am working on a project which used visual basic to write code in asp.net. I have some confusion when I am using the select case statement in asp.net. My asp.net is connected to sql server database, I have a table called Person
, it has Id
as decimal, Name
as string and Nationality
as string. In the table, it has some people had 2 nationality or above, I have case for nationality
, for example, Mary have thai and vietnamese nationality, so i have written the code like this.
private sub Button1.Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button1.Click
Dim a() as string
a = Me.DropDownList1.SelectedValue.Split(",".ToCharArray)
Select Case CInt(a(0))
Case 1
TextBox1.Text= "Vietnam"
Case 2
TextBox2.Text= "Thai"
Case 3
TextBox3.Text= "Australia"
Case 4
TextBox4.Text= "Canada"
End Select
End Sub
Sql server database Table:
Id Name Nationality
1 Mary 1,2
2 Andrew 4
3 Ken 3
Expected Result:
1 Mary Vietname,Thai
答案1
得分: 1
以下是您要的翻译部分:
一旦您拆分了项目,您可以遍历它们,将每个文本片段添加到一个List(Of String),然后在最后将它们连接在一起。
也许是这样的:
Module Module1
Public Function GetNationalityNames(csvIds As String) As String
Dim natNums = csvIds.Split({","c}, StringSplitOptions.RemoveEmptyEntries)
Dim natNames As New List(Of String)
For Each nat In natNums
Select Case nat
Case "1"
natNames.Add("越南")
Case "2"
natNames.Add("泰国")
Case "3"
natNames.Add("澳大利亚")
Case "4"
natNames.Add("加拿大")
End Select
Next
Return String.Join(", ", natNames)
End Function
Sub Main()
Console.WriteLine(GetNationalityNames("3"))
Console.WriteLine(GetNationalityNames("1,2"))
Console.ReadLine()
End Sub
End Module
输出:
澳大利亚
越南, 泰国
(您会将函数声明为Shared
,但这只是一个快速的控制台程序,用于演示。)
英文:
Once you've split the items, you can iterate over them, adding each piece of text to a List(Of String), then join them together at the end.
Perhaps somthing like:
Module Module1
Public Function GetNationalityNames(csvIds As String) As String
Dim natNums = csvIds.Split({","c}, StringSplitOptions.RemoveEmptyEntries)
Dim natNames As New List(Of String)
For Each nat In natNums
Select Case nat
Case "1"
natNames.Add("Vietnam")
Case "2"
natNames.Add("Thai")
Case "3"
natNames.Add("Australia")
Case "4"
natNames.Add("Canada")
End Select
Next
Return String.Join(", ", natNames)
End Function
Sub Main()
Console.WriteLine(GetNationalityNames("3"))
Console.WriteLine(GetNationalityNames("1,2"))
Console.ReadLine()
End Sub
End Module
Outputs:
Australia
Vietnam, Thai
(You'd declare the function to be Shared
, but that was just a quick console program to demonstrate.)
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论