データベースに重複して追加されないように、現在のコードに機能を追加したいと考えています。誰かが既に自分の名前と電子メールを登録している場合は、代わりにメッセージがポップアップして、すでに情報をデータベースに追加したと言います。私のフォームはasp.netを使用しているデータは、C#を使用して設定されています。私はこのようなものを含めることができますか:cmd.CommandText = "select * from Table1 where pName='"+t1.Text+"' and pEmail='"+t2.Text+"'";
これを達成するには?ユーザーデータが既にデータベースに存在するかどうかを確認してください
C#コード:
using System.Data.OleDb;
using System.Configuration;
public partial class Default2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
OleDbConnection con = new OleDbConnection();
con.ConnectionString = ConfigurationManager.ConnectionStrings["NorthwindConnectionString2"].ToString();
con.Open();
OleDbCommand cmd = new OleDbCommand();
cmd.CommandText = "insert into[Table1](pName)values(@nm)";
cmd.Parameters.AddWithValue("@nm", TextBox1.Text);
cmd.CommandText = "insert into[Table1](pEmail)values(@nm)";
cmd.Parameters.AddWithValue("@nm", TextBox2.Text);
cmd.Connection = con;
int a = cmd.ExecuteNonQuery();
if (a>0)
{
Label1.Text = "Inserted Sucessfully!";
}
}
}
をトライキャッチを使用して、はい、あなたのことができ、およびレコードの数を返すために、 'COUNT(*)を'を使用します。しかし、文字列concatの代わりに 'Parameters'を使う方が良い – Prisoner
列をユニークにして、try-catchでコードを囲んでください。重複したデータが挿入された場合、SQL例外を介して例外がキャッチされ、メッセージが表示されます –
ありがとうございました!私はそれを試してみましょう! – penmas