未插入数据

时间:2017-04-22 14:23:50

标签: c# sql asp.net insert

我想使用按钮将员工详细信息插入数据库,我使用的是asp.net,sql server 2016.数据不会插入,也不会出现任何错误。指定和部门是下拉列表。

protected void btnCreate_Click(object sender, EventArgs e)
    {
        SqlConnection conn = new SqlConnection(@"connectionstring");

            try
            {

                conn.Open();
            //SqlCommand cmd = new SqlCommand("Insert into Employee values (@EmpID, @FirstName, @LastName, @Email, @Password,@DesigID, @DeptID, @Address, @Contact)", conn);
            SqlCommand cmd = new SqlCommand("insertemployee", conn);
            cmd.CommandType = System.Data.CommandType.StoredProcedure;

                // int ddldedig = Convert.ToInt32(DropDownListDesig.SelectedValue);
                //int ddldept = Convert.ToInt32(DropDownListDept.SelectedValue);

                cmd.Parameters.AddWithValue("@EmpID", TextBoxEmpID.Text);

                cmd.Parameters.AddWithValue("@FirstName", TextBoxFirstName.Text);
                cmd.Parameters.AddWithValue("@LastName", TextBoxLastName.Text);
                //cmd.Parameters.AddWithValue("BankID", TextBoxBankID.Text);

                cmd.Parameters.AddWithValue("@Email", TextBoxEmail.Text);
                cmd.Parameters.AddWithValue("@Password", TextBoxPassword.Text);

                cmd.Parameters.AddWithValue("@DesigID", DropDownListDesig.SelectedValue);
                cmd.Parameters.AddWithValue("@DeptID", DropDownListDept.SelectedValue);
                cmd.Parameters.AddWithValue("@Address", TextBoxAddress.Text);
                cmd.Parameters.AddWithValue("@Contact", TextBoxContact.Text);

                cmd.ExecuteNonQuery();
                ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "alertMessage", "alert('Employee Account Successfully Create')", true);

            }

            catch (SqlException ex)
            {
                Console.WriteLine("value added");
            }
            finally
            {
                conn.Close();
            }


    }

以下是商店程序:

 ALTER PROCEDURE [dbo].[insertemployee]
        -- Add the parameters for the stored procedure here
        @EmpID nchar(10),
        @FirstName varchar(50),
        @LastName varchar(50),
        @Email varchar(50),
        @Password varchar(50),
        @BankID int ,
        @DesigID int ,
        @DeptID int ,
        @Address varchar(50),
        @Contact varchar(50)
    AS
    BEGIN
        -- SET NOCOUNT ON added to prevent extra result sets from
        -- interfering with SELECT statements.
        SET NOCOUNT ON;

        -- Insert statements for procedure here
        insert into Employee (EmpID,FirstName, LastName, Email,"Password",DesigID,DeptID,"Address", Contact) values (@EmpID,@FirstName, @LastName, @Email, @Password,@DesigID,@DeptID,@Address,@contact)
    END

1 个答案:

答案 0 :(得分:0)

如果变量类型的EmployeID是int,那么你需要将txtBoxEmpId的值转换为int,希望有帮助。cmd.Parameters.AddWithValue("@EmpID", Convert.ToInt32(TextBoxEmpID.Text));