C# 如何在变量中存储sql查询

C# 如何在变量中存储sql查询,c#,mysql,asp.net,sql-server,C#,Mysql,Asp.net,Sql Server,我有一个查询,它返回staff TeachingID,它是staff教授的课程的id 我的问题是: 如何存储这些值因为它返回的值超过1个,我可以在sql server或c中使用数组吗 然后我想获取这些值并将其传递给其他查询,如下所示: 选择考试。考试日期,其中ExamID=@GetExamID SELECT Staff_Teaching.TeachingID FROM Staff_Teaching INNER JOIN Staff ON Staff_Teaching.St

我有一个查询,它返回staff TeachingID,它是staff教授的课程的id

我的问题是:

如何存储这些值因为它返回的值超过1个,我可以在sql server或c中使用数组吗

然后我想获取这些值并将其传递给其他查询,如下所示:

选择考试。考试日期,其中ExamID=@GetExamID

SELECT Staff_Teaching.TeachingID FROM   Staff_Teaching INNER JOIN
          Staff ON Staff_Teaching.StaffID = Staff.StaffID WHERE        (Staff.StaffID = @StaffID) AND (Staff_Teaching.SemesterID = @SemesterID))
我可以使用foreach或array吗?我正在使用asp.NETC

这就是我想做的

`@GetExamID` is where I want to pass these values to be checked 
我有5个查询,第一个将得到teachingid 1值 第二个将获得coursesid大于1的值 然后,接下来的两名学生将学习coursesid,并获得考试日期和时间
然后我想检查最后一次查询中是否有任何结果

SQL Server中没有类似的数组。您可以使用临时表临时存储此信息

BEGIN TRANSACTION
SET @GetTeachingID =(SELECT        Staff_Teaching.TeachingID
FROM          Staff_Teaching INNER JOIN
              Staff ON Staff_Teaching.StaffID = Staff.StaffID
WHERE        (Staff.StaffID = @StaffID) AND (Staff_Teaching.SemesterID = @SemesterID))
COMMIT 

BEGIN TRANSACTION
SELECT  Course_Department.CourseID
FROM            Course_Department INNER JOIN
                         Exam ON Course_Department.CourseID = Exam.ExamID INNER JOIN
                         ExamSchedule ON Exam.ExamID = ExamSchedule.ExamID INNER JOIN
                         Staff_Teaching ON Course_Department.TeachingID = Staff_Teaching.TeachingID
WHERE        (Staff_Teaching.TeachingID = @GetTeachingID)

COMMIT 


BEGIN TRANSACTION
SET @GetExamDate=(SELECT Exam.Date  
FROM Exam
WHERE (ExamID = @GetExamID))
COMMIT 

BEGIN TRANSACTION
SET @GetExamTime=(SELECT Exam.BegainTime  
FROM Exam
WHERE (ExamID = @GetExamID))
COMMIT 

BEGIN TRANSACTION
SELECT        ExamScheduleID
FROM          Exam INNER JOIN
              ExamSchedule ON Exam.ExamID = ExamSchedule.ExamID
WHERE        (ExamSchedule.ExamScheduleID = @ExamScheduleID) AND (Exam.Date LIKE @GetExamDate) AND (Exam.BegainTime<=@GetExamTime)
COMMIT 



END
传为

SELECT Staff_Teaching.TeachingID
INTO #Temp
Staff_Teaching INNER JOIN
      Staff ON Staff_Teaching.StaffID = Staff.StaffID WHERE                    
     (Staff.StaffID = @StaffID) AND (Staff_Teaching.SemesterID = @SemesterID))
你可以这样写

SELECT Exam.Date  FROM Exam WHERE (ExamID IN SELECT * FROM #Temp)
并将@GetExamID作为逗号分隔的字符串1,2,4,5

可以使用以下命令将int数组转换为逗号分隔的字符串

declare @query = '(SELECT Exam.Date  FROM Exam WHERE (ExamID IN ('+@GetExamID+') )'

exec @query 

请适当标记您的问题。您使用的是MySQL还是SQL Server?检查表是否有示教栏?如何保存第一个查询中的值以将其传递给@GetExamID?!
var result = string.Join(",", arr);