【发布时间】:2015-09-19 03:03:03
【问题描述】:
我有一个投票表,其中包含已投票用户的公司名称和对该公司投票的用户的唯一客户编号。
用户对其他公司投票(赞成或反对)并且必须提供他们唯一的客户编号才能投票。
我想创建一个唯一约束,允许用户只投票一次,但不能对同一家公司投票两次,但是我希望相同的客户编号可以对多个查询进行投票。我只知道唯一约束,但这不起作用,因为它只允许用户在激活唯一约束时对任何公司进行一次投票。
例如(这样就好):
CompanyID Voted(customer number)
Maccas 12345
BMW 12345
Maccas 66666
并且我想约束以下内容(通过在公司名称和客户编号相同时激活约束):
CompanyID Voted
Maccas 12345
Maccas 12345 (should prevent duplicate of both columns co-existing)
我的代码:
string voteTable = "INSERT INTO dbo.votes (CompanyID,Voted) Values (@CompanyID,@Voted)";
canUserVote(); //checks if customer number exists
this.companyName = Convert.ToString(e.CommandArgument);
SqlCommand insertVoterDetails = new SqlCommand (voteTable,voteDb); //inserts voter details to votes table
insertVoterDetails.Parameters.AddWithValue("@CompanyID", this.companyName);
insertVoterDetails.Parameters.AddWithValue("@Voted", custVoteTextBox.Text);
感谢您的帮助!
【问题讨论】:
-
您可以在两列上创建约束。这可以在数据库中完成:你使用什么数据库?
-
我指的是当两列都与其他行而不是单列重复时创建约束。我正在使用 MSSQL,谢谢
-
见下面Goel的回答。
-
@JamesS .. 你还需要什么吗?请参阅下面的答案..
-
谢谢大家!一切正常
标签: c# sql sql-server constraints