VB.NET简单判断语句,求救!

ZhangNan20100811 2012-03-04 03:43:59
DetailID sname
1 语文
2 数学
5 英语
8 设计
10 政治
25 美术
32 地理
11 广告
70 化学

这是数据库中其中一个表中的信息。

我的问题是:

循环这些数据,如果DetailID=8的时候,取得数据: 语文,数学,英语,设计
如果DetailID=25的时候,取得数据: 语文,数学,英语,设计,政治,美术
如果DetailID=8的时候,取得数据: 语文,数学,英语,设计,政治,美术,地理,广告
如果DetailID数据中没有8,25,11,sname 数据为空。

求救,再此先感谢大家了。
...全文
381 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wood87654321 2012-03-05
  • 打赏
  • 举报
回复
由于编号没有规律,所以要实现你的需求,前提必须是数据严格按那种顺序自然输入,否则无法实现

至少先得用SQL语句"select DetailID, sname from 你的表"把数据都读到一个DataTable中,然后

Dim Ary() As String
Dim DetailID As Integer = 25
Dim i As Integer
For i=0 To DT.Rows.Count - 1
If DT.Rows(i).Item(0)=DetailID Then
Redim Ary(i)
Dim j As Integer
For j=0 To i
Ary(j)=DT.Rows(i).Item(1)
Next
Exit For
End If
Next

东海凌波 2012-03-05
  • 打赏
  • 举报
回复
Imports System.Data
Imports System.Data.SqlClient
Public Class Form1
Dim strSQL As String = "Data Source=127.0.0.1;Initial Catalog=test;Persist Security Info=True;User ID=sa;Password=dhlb;Max Pool Size=50;Min Pool Size=5;Pooling=True"
Dim conn As SqlConnection
Dim cmd As SqlCommand
Dim adapter As SqlDataAdapter
Public Function AccessDB() As DataTable
Try
conn = New SqlConnection
cmd = New SqlCommand
conn.ConnectionString = strSQL
conn.Open()
Dim dt As DataTable
cmd.CommandType = CommandType.Text
cmd.CommandText = "select * from t_table"
cmd.Connection = conn
adapter = New SqlDataAdapter
adapter.SelectCommand = cmd


dt = New DataTable("t_table")

adapter.SelectCommand = cmd
adapter.Fill(dt)
Return dt
Catch ex As Exception
Throw ex
Finally
conn.Close()
End Try

End Function

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim dtTEMP As DataTable = AccessDB()
Dim str As String = "'"
If dtTEMP IsNot Nothing AndAlso dtTEMP.Rows.Count > 0 Then

For i As Integer = 0 To dtTEMP.Rows.Count - 1
Dim strTEMP As String = dtTEMP.Rows(i).Item("DetailID").ToString.Trim
str += dtTEMP.Rows(i).Item("DetailID").ToString.Trim & "',"
Select Case strTEMP
Case "8"
For j As Integer = 0 To i
Label1.Text &= dtTEMP.Rows(j).Item("sname").ToString.Trim & " "
Next
Case "25"
For j As Integer = 0 To i
Label2.Text &= dtTEMP.Rows(j).Item("sname").ToString.Trim & " "
Next
Case "11"
For j As Integer = 0 To i
Label3.Text &= dtTEMP.Rows(j).Item("sname").ToString.Trim & " "
Next
Case Else
Label4.Text = "There is no data"
End Select
Next
End If
End Sub
End Class

看看这个是不是你要的。
EnForGrass 2012-03-04
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 zhangnan20100811 的回复:]

DetailID sname
1 语文
2 数学
5 英语
8 设计
10 政治
25 美术
32 地理
11 广告
70 化学

这是数据库中其中一个表中的信息。

我的问题是:

循环这些数据,如果DetailID=8的时候,取得数据: 语文,数学,英语,设计
如果DetailID=25的时候,取得数据: 语文,数学,英语,设计,政治,美术
如果De……
[/Quote]
还不是要在sql里面处理
足球中国 2012-03-04
  • 打赏
  • 举报
回复

Public Class Form1

Public Sub getvalue(ByVal tale As DataTable, ByVal DetailID As String)
Dim list As New List(Of DataRow)
Dim hav As Boolean
Dim str As String

For Each row As DataRow In tale.Rows
list.Add(row)
If (row("").ToString().Equals(DetailID)) Then
hav = True
str = DetailID
End If

Next
If (hav = False) Then
list.Clear()
End If


End Sub



End Class



楼主的题实在是没看清。
ZhangNan20100811 2012-03-04
  • 打赏
  • 举报
回复
DetailID sname
1 语文
2 数学
5 英语
8 设计
10 政治
25 美术
32 地理
11 广告
70 化学

这是数据库中其中一个表中的信息。

我的问题是:

循环这些数据,如果DetailID=8的时候,取得数据: 语文,数学,英语,设计
如果DetailID=25的时候,取得数据: 语文,数学,英语,设计,政治,美术
如果DetailID=11的时候,取得数据: 语文,数学,英语,设计,政治,美术,地理,广告
如果DetailID数据中没有8,25,11,sname 数据为空。

判断语句,不是SQL语句。

求救,再此先感谢大家了。
ZhangNan20100811 2012-03-04
  • 打赏
  • 举报
回复
不会的
ziyouli 2012-03-04
  • 打赏
  • 举报
回复
[Quote=引用楼主 zhangnan20100811 的回复:]
我的问题是:

循环这些数据,如果DetailID=8的时候,取得数据: 语文,数学,英语,设计
如果DetailID=25的时候,取得数据: 语文,数学,英语,设计,政治,美术
如果DetailID=8的时候,取得数据: 语文,数学,英语,设计,政治,美术,地理,广告
如果DetailID数据中没有8,25,11,sname 数据为空。
[/Quote]
第一句和第三句不会矛盾?
ZhangNan20100811 2012-03-04
  • 打赏
  • 举报
回复
在线等,哪位大哥给点逻辑性代码,非常感谢。

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧