私は、SQL Serverのストアドプロシージャをクリックして新しい行を挿入するボタンを登録しています。問題は、同じ項目の2つの行が挿入された(偶発的なダブルクリックがない)場合です。私は完全に私のコードを通過したが、私は問題を見つけることができませんでした。C#ASP.NET、SQL Server:Button Click重複行を挿入します。
C#]ボタンをクリックコード:
protected void Button1_Click(object sender, EventArgs e)
{
int userId = 0;
string constr = ConfigurationManager.ConnectionStrings["islamguiderConnectionString"].ConnectionString;
using (SqlConnection con = new SqlConnection(constr))
{
using (SqlCommand insertUser = new SqlCommand("Register_Student"))
{
insertUser.CommandType = CommandType.StoredProcedure;
insertUser.Parameters.AddWithValue("@StudentName", TextBox1.Text.ToUpper());
insertUser.Parameters.AddWithValue("@Email", TextBox4.Text.ToLower());
insertUser.Parameters.AddWithValue("@CourseCode", DropDownList2.SelectedValue);
insertUser.Parameters.AddWithValue("@CourseTitle", DropDownList2.SelectedItem.ToString());
insertUser.Connection = con;
con.Open();
insertUser.ExecuteNonQuery();
userId = Convert.ToInt32(insertUser.ExecuteScalar());
Con.Close()
}
}
}
マイSQL Serverのストアドプロシージャ:
CREATE PROCEDURE [dbo].[Register_Student]
@StudentName NVARCHAR(200),
@Email NVARCHAR(200),
@CourseCode NVARCHAR(200),
@CourseTitle NVARCHAR(200)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @ID INT
INSERT INTO dbo.Registration_Table (StudentName,Email, CourseCode, CourseTitle)
VALUES (@StudentName, @Email, @CourseCode, @CourseTitle)
SELECT 2
END
[既にAddWithValue()を使用して停止できますか?](http://blogs.msmvps.com/jcoehoorn/blog/2014/05/12/can-we-stop-using-addwithvalue-already)をチェックしてください。 /)を使用し、 '.AddWithValue()'の使用を止めます - 予期しない驚くべき結果につながる可能性があります... –