SQLコンパクトエディションを使用してテーブルに列を追加しようとしています。それ以前は動作していましたが、エラーが発生しましたユニークな列を追加するためのテーブルの変更SQLの
重複する値を一意のインデックスに挿入できません。 [テーブル名=最後の試み、制約名= UQ__final try__0000000000000228]
私は(テキストボックスを使用して)新しい列名を取得し、カラムは(チェックボックス)一意であるかどうかを判断していますので、私はC#を使用しています。それは突然それは動作しませんでした。助けてください!私のコードはちょっと面倒です。
string constr = "ALTER TABLE ";
if (textBox2.Text.ToString() != "")
{
constr += "[" + table + "] ADD [" + col1 + "]";
if (comboBox2.Text == "text")
{
constr += " nvarchar(300)";
}
else if (comboBox2.Text == "number")
{
constr += " int";
}
else if (comboBox2.Text == "date")
{
constr += " datetime";
}
if (checkBox1.Checked)
{
constr += " unique";
}
}
cmd.CommandText = constr;
cmd.ExecuteNonQuery();
constr
出力
ALTER TABLE table ADD COLUMN column1 int unique
ような何か助けてください:私はここにあるごめんなさい!ありがとう!
編集:私はデータグリッドビューがすでに内部にそのデータを持っている場合にのみ、私は列を追加することはできません発見
。私は何をすべきか?助けて!ありがとう!!!
問題は思わDataGridViewのではなく、ALTER TABLEのSQLから来るの... – Grace
テーブルは、テーブルに列を追加することができますフィールドがNULLでないか、またはユニークでないときには、埋められません。フィールドがヌルでない場合は、デフォルト値を指定する必要があります。ユニークであるようにするには、カラムをユニークに追加してから、カラム作成後にヌルを許可するユニークなインデックスを作成する必要があります – GuidoG