首页 > 解决方案 > 从数据库中随机生成 id 并确保不重复

问题描述

我正在尝试从数据库中的问题表中随机生成要在测验中回答的问题,但我不希望测验中有 2 个相同的问题。

当问题被问到时,我正在使用它们将它们放入表格中

SqlCommand cmdInsert = new SqlCommand("INSERT INTO [dbo].[Tests]( TestID, UserID, Date, QuestionsID) VALUES ('"+1+"','"+ StudentLoginForm.UserInformation.UserID + "',GETDATE(),'" + QuestionID.Questionid + "')", con);

目的是将此表的内容与问题 ID 进行比较以选择问题。

我正在使用以下选择语句来选择要问的问题,但有时会产生相同的问题

 SqlCommand cmd = new SqlCommand("SELECT QuestionID, Answer, Question, OptionA, OptionB, OptionC, OptionD FROM dbo.Questions LEFT JOIN Tests ON Questions.QuestionID = Tests.QuestionsID order by newid()", con);

任何尝试解决此问题的帮助将不胜感激。

标签: c#sqldatabasecommandinner-join

解决方案


您的连接可能会产生重复,因此您必须修复数据或在查询中使用 DISTINCT。

SELECT DISTINCT QuestionID, Answer, Question, OptionA, OptionB, OptionC, OptionD
FROM dbo.Questions 
LEFT JOIN Tests ON Questions.QuestionID = Tests.QuestionsID 

推荐阅读