【发布时间】:2012-04-18 14:39:57
【问题描述】:
我正在使用以下存储过程来调用期间编号以将它们与教师匹配。
我们正在编写一个考勤应用程序,在该应用程序中,从下拉菜单中选择教师的姓名后,“句号”下拉菜单就会出现。出于某种原因,我们没有得到要填充的周期数据。
存储过程:
ALTER PROCEDURE spGetPeriod @Period varchar(10)
AS
SELECT Period
FROM tmTeacher
WHERE Period = @Period
RETURN
Teacher Table
TeacherId varchar(10) Unchecked
FName varchar(20) Checked
LName varchar(20) Checked
StudentId varchar(10) Unchecked
Period varchar(10) Unchecked
TeacherName varchar(50) Checked
Period Table
PeriodId varchar(10) Unchecked
Period varchar(50) Unchecked
ClassId varchar(10) Unchecked
提前致谢!
调用 SP 的代码:
'***** SETUP THE CONNECTION ***
SQL = "spGetPeriod '" + (cboTeacher.Text) + "'"
'SQL = "select * from teacher"
Try
With SqlCmd
.CommandText = SQL
'.CommandType = CommandType.StoredProcedure
.Connection = objConnection
'.Parameters.AddWithValue("@TeacherId", cboTeacher.SelectedIndex)
End With
SqlCmd = New SqlCommand(SQL, objConnection)
Catch ex As Exception
Call ErrorControl(ex)
End Try
'*** MAKE THE CONNECTION ***
Try
HandleConnection(objConnection)
'MsgBox("Connection Established!")
ToolStripStatusLabel1.Text = "Connection Established!"
Catch ex As Exception
Call ErrorControl(ex)
End Try
'*** EXECUTE THE COMMAND AND FILL THE COMBO ***
Dim Reader As SqlDataReader = SqlCmd.ExecuteReader()
While Reader.Read()
cboPeriod.Items.Add(Reader(0).ToString)
End While
ToolStripStatusLabel1.Text = "Periods Loaded!"
End Sub
【问题讨论】:
-
您需要包含用于捕获 SP 结果的 VB 代码。
-
您不想将“teacherid”传递给过程,然后在 sproc 中从“teacherid” = @teacherid 的“teacher”表中选择“period”吗?
-
该数据是从您的存储过程中返回的吗?如果是这样,那么我们需要查看您的 vb.net 代码给您答案
-
“已选中”和“未选中”是什么意思?另外我会考虑将 Int 用于您的 Id 列而不是 varchar(10)。
-
Checked 和 Unchecked 指的是 ALLOW NULL 列,它是如何复制过来的。
标签: sql-server vb.net