mysql – 如何根据学生ID选择联结表
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了mysql – 如何根据学生ID选择联结表,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1911字,纯文字阅读大概需要3分钟。
内容图文
![mysql – 如何根据学生ID选择联结表](/upload/InfoBanner/zyjiaocheng/903/af7ec202ff5649bd8855751cc1bd889e.jpg)
先抱歉,我的英语不好.
我有一个问题使用联结表它只返回我1主题这是我的查询.
我有一个
Student_tbl,Subject_tbl,student_subject_tbl联结表.
这是我使用vb.net的查询
SELECT subject_name
FROM student_subject
JOIN student ON student.StudentID = student_subject.student_id
JOIN subject_bsit ON subject_bsit.subject_id = student_subject.sub_id
WHERE student.StudentID='" & TextBox1.Text & "'"
我想要做的是我只想选择属于student_id学生ID的所有主题名称等于我在vb.net中的文本框,我将在其中键入学生的学生ID.非常感谢.
编辑:
我试图在文本框中显示输入的学生ID的所有主题名称的值.这是我的vb.code显示它只显示subject_tbl上的第一个主题
cmd = New MySqlCommand(sql, myconn)
dr = cmd.ExecuteReader
If dr.Read = True Then
TextBox2.Text = dr(0)
'Label4.Text = dr(1)
TextBox4.Text = dr(1)
TextBox5.Text = dr(2)
TextBox6.Text = dr(3)
TextBox7.Text = dr(4)
TextBox8.Text = dr(5)
dr.Close()
解决方法:
您不必加入学生表,因为Id也存储在联结表中而您没有检索学生信息,也使用参数化命令而不是手动构建命令以避免SQL注入.
尝试使用以下代码:
Dim strQuery as string = "SELECT subject_name " & _
" FROM student_subject " & _
" INNER JOIN subject_bsit ON subject_bsit.subject_id = student_subject.sub_id" & _
" WHERE student_subject.student_id = @StudentID"
Dim cmd as New MySqlCommand(strQuery,connection)
cmd.AddParameterWithValue("@StudentID",Textbox1.text)
cmd.ExecuteReader()
更新1
传递给datareader对象的索引是列索引而不是行索引,您还必须使用循环而不是if条件:
cmd = New MySqlCommand(sql, myconn)
dr = cmd.ExecuteReader()
While dr.Read = True Then
Msgbox(dr(0).Tostring())
End While
dr.Close()
更新2 – 动态传递文本框名称
首先,您必须确保文本框的数量小于或等于返回的行数.
cmd = New MySqlCommand(sql, myconn)
dr = cmd.ExecuteReader()
Dim cnt as Integer = 1
While dr.Read = True Then
Dim txt As New TextBox = DirectCast(Me.Controls.Find(string.Format("Textbox{0}", cnt ),false).FirstOrDefault(),Textbox);
txt.Text = dr(0).ToString()
cnt += 1
End While
dr.Close()
但为什么不在GridView中显示结果?
内容总结
以上是互联网集市为您收集整理的mysql – 如何根据学生ID选择联结表全部内容,希望文章能够帮你解决mysql – 如何根据学生ID选择联结表所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。