내 테이블 '퀴즈'에 일부 행을 삽입하려고합니다. 내 테이블이 비어와 나는 그것이 작동하는 첫 번째 행을 삽입하려고하지만 난이 오류가 계속 두 번째 행 입력하려고 할 때마다 때 : 난 이후 원인이 뭐죠 내가 그나마C에서 행을 삽입 할 때 UNIQUE KEY 제약 조건 위반 #
Violation of UNIQUE KEY constraint 'UQ__Quiz__D0C4726C5B2346B6'. Cannot insert duplicate key in object 'dbo.Quiz'. The duplicate key value is (<NULL>).
정말 아이디어가 항상 각 행마다 다른 ID를 입력하십시오.
프리젠 테이션 레이어 :
if (IsValidData())
{
quiz.QuizID = Convert.ToInt32(quizIDTextBox.Text);
quiz.QuizNaam = quizNaamTextBox.Text;
quiz.QuizDatum = Convert.ToString(quizDatumDateTimePicker.Text);
quiz.Locatie = locatieTextBox.Text;
quiz.Type = typeTextBox.Text;
quiz.Moeilijkheidsgraad = moeilijkheidsgraadTextBox.Text;
QuizDB.InsertQuiz(quiz);
MessageBox.Show("Quiz Toegevoegd", "Quiz");
}
데이터베이스 계층 :
public static void InsertQuiz(Quiz quiz)
{
string insertStatement = "INSERT INTO Quiz (QuizID,QuizNaam,QuizDatum,Locatie,Type,Moeilijkheidsgraad) VALUES (@QuizID,@QuizNaam, @QuizDatum, @Locatie, @Type, @Moeilijkheidsgraad)";
SqlCommand quizCommand = new SqlCommand(insertStatement, conn);
quizCommand.Parameters.Clear();
quizCommand.Parameters.AddWithValue("@QuizID", quiz.QuizID);
quizCommand.Parameters.AddWithValue("@QuizNaam", quiz.QuizNaam);
quizCommand.Parameters.AddWithValue("@QuizDatum", quiz.QuizDatum);
quizCommand.Parameters.AddWithValue("@Locatie", quiz.Locatie);
quizCommand.Parameters.AddWithValue("@Type", quiz.Type);
quizCommand.Parameters.AddWithValue("@Moeilijkheidsgraad",quiz.Moeilijkheidsgraad);
try
{
conn.Open();
quizCommand.ExecuteNonQuery();
}
catch (SqlException ex)
{
throw ex;
}
finally
{
conn.Close();
}
}
를 bussiness 층 :
public class Quiz
{
private int cQuizId;
private string cQuizNaam;
private string cQuizDatum;
private int cWinnaarId;
private string cLocatie;
private string cType;
private string cMoeilijkheidsgraad;
public Quiz() { }
public int QuizID
{
get { return cQuizId;}
set { cQuizId = value; }
}
public string QuizNaam
{
get { return cQuizNaam; }
set { cQuizNaam = value; }
}
public string QuizDatum
{
get { return cQuizDatum; }
set { cQuizDatum = value; }
}
public int WinnaarId
{
get { return cWinnaarId; }
set { cWinnaarId = value; }
}
public string Locatie
{
get { return cLocatie; }
set { cLocatie = value; }
}
public string Type
{
get { return cType; }
set { cType = value; }
}
public string Moeilijkheidsgraad
{
get { return cMoeilijkheidsgraad; }
set { cMoeilijkheidsgraad = value; }
}
}
오류 메시지는 'Quiz' 테이블에 고유성 제약 조건이 있음을 알려줍니다. 동일한 값을 수동으로 테이블에 삽입 해 보았습니까? –
삽입 한 첫 번째 ID는 괜찮습니까? 정수입니까? – CristisS
첫 번째 삽입 후 열 값이 NULL인지 확인 했습니까? 아마도 그것은 문제를 발견하기위한 몇 가지 힌트를 가져올 것입니다. – HuorSwords