c# - 从数据库中随机生成 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);
任何尝试解决此问题的帮助将不胜感激。
解决方案
您的连接可能会产生重复,因此您必须修复数据或在查询中使用 DISTINCT。
SELECT DISTINCT QuestionID, Answer, Question, OptionA, OptionB, OptionC, OptionD
FROM dbo.Questions
LEFT JOIN Tests ON Questions.QuestionID = Tests.QuestionsID
推荐阅读
- ios - 如何在 Mac 上的 iPhone 模拟器上运行 ElectronJS 应用程序?
- python - HTML中的标签机制,硒抓取
- android - UnityEngine.Microphone.devices.Length = 0
- android - requestPermissions 按钮上的不可见文本
- python - 基于另一个规则的新列(在值中包含一个数字)
- css - 在悬停时更改 React 中的背景颜色
- java - 无法模拟 Rest Template postForEntity()
- javascript - 使用表单 onsubmit 不触发 javascript 而是重新加载页面
- typescript - 具有自引用通用类型的记录
- python - TOR Stem 找不到 cookie 控制身份验证文件