私のC#プロジェクトでデータベースにレコードを追加しようとしています。データベースにレコードを1回だけ追加することはできますか?
レコードを1回だけ追加できます。次回新しいレコードを追加しようとしているときに例外があります。
どうしてですか?私はコードを変更しませんでした。コードは次のとおりです。
try
{
connect.Open();
cmd.Connection = connect;
using (cmd = connect.CreateCommand())
{
cmd.CommandText = @"INSERT INTO [kalorivediyet].[dbo].[Uyeler](kullaniciadi,sifre,mailadresi,cinsiyet,boy,kilo,yaş,kalori) VALUES('" + txtkullanıcıadı.Text.Trim() + "','" + txtsifre.Text.Trim() + "','" + txtmail.Text.Trim() + "','" + selectedcmbox.ToString() + "'," + int.Parse(txtboy.Text) + "," + float.Parse(txtkilo.Text) + "," + int.Parse(txtyas.Text) + "," + kalorii + ")";
cmd.ExecuteNonQuery();
}
}
catch(Exception)
{
MessageBox.Show("Baglanti Kurulamadı Lütfen Tekrar Deneyin");
connect.Close();
}
finally
{
connect.Close();
}
例外はありますか?文字列の連結は使用しませんが、SQLパラメータは常に使用してください。また、テーブルのスキーマ、そのカラムの種類、タイプを教えてください。主キーとは何か、制約はありますか?任意の列の[一意制約](https://msdn.microsoft.com/en-GB/library/ms190024.aspx)? –
あなたの例外メッセージを教えてください!同じレコードを再度追加しようとすると違反するいくつかのユニークなキー制約が定義されている可能性があります。そしてbtw:あなたのコードは[SQL Injection](http://www.bobby-tables.com/)に広く公開されています。これが実験のためのものであればOKですが、練習用であっても常にパラメータ化されたクエリを使用する必要があります。 –
私はそれがkullaniciadi(ユーザー名)のプライマリキーを持っていると私は再び同じユーザー名を入れていない私は別のユニークなキーを持っていない私はこのコードをしようとしているとしようとcmd.ExecuteNonQueryしようとすると –