C# ASP.NET,SQL Server:单击按钮可插入重复的行



我有一个注册表单,单击按钮即可调用SQL Server中的存储过程并插入新行。问题是当我单击(没有意外双击)时,插入了同一条目的两行。我已经彻底浏览了我的代码,但我找不到问题。

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

问题出在这两行:

insertUser.ExecuteNonQuery();
userId = Convert.ToInt32(insertUser.ExecuteScalar());

您正在执行两次insertUser命令;ExecuteNonQuery次和ExecuteScalar次。

最新更新