简体   繁体   中英

Inserting new records into SQL Server

I'm still new here and even in Visual Studio so I don't fully know all the function in Visual Studio. I'm trying to insert data into SQL Server. When I run this code and enter the necessary information, my label message will show up, but when I look in SQL Server, nothing has changed. Visual Studio is connected to SQL Server. Thanks for the help in advance.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;

public partial class NewEmployee : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Page.IsPostBack == true)
        {
            Label14.Text = ("**Your data has been entered in SQL"); 
        }
    }

    protected void Button1_Click(object sender, EventArgs e)
    {
        SqlConnection vid = new SqlConnection("Data Source=JOSAN;Initial Catalog=AdventureWorks2012;Integrated Security=True");
        {
            SqlCommand xp = new SqlCommand("Insert into HumanResources.Employee(NationalIDNumber, LoginID, JobTitle, BirthDate, MaritalStatus, Gender, HireDate, SalariedFlag, VacationHours, SickLeaveHours, CurrentFlag, ModifiedDate) Values(@NationalIDNumber, @loginID, @JobTitle, @BirthDate, @MaritalStatus, @Gender, @HireDate, @SalariedFlag, @VacationHours, @SickLeaveHours, @CurrentFlag, @ModifiedDate)", vid); 
            xp.Parameters.AddWithValue("@NationalIDNumber", Convert.ToInt32(TextBox1.Text));
            xp.Parameters.AddWithValue("@LoginID", TextBox2.Text);
            xp.Parameters.AddWithValue("@JobTitle", TextBox3.Text);
            xp.Parameters.AddWithValue("@BirthDate", Convert.ToDateTime(TextBox4.Text));
            xp.Parameters.AddWithValue("@MaritalStatus", Convert.ToChar(TextBox5.Text));
            xp.Parameters.AddWithValue("@Gender", Convert.ToChar(TextBox6.Text));
            xp.Parameters.AddWithValue("@HireDate", Convert.ToDateTime(TextBox7.Text));
            xp.Parameters.AddWithValue("@SalariedFlag", Convert.ToInt32(TextBox8.Text));
            xp.Parameters.AddWithValue("@VacationHours", Convert.ToInt32(TextBox9.Text));
            xp.Parameters.AddWithValue("@SickLeaveHours", Convert.ToInt32(TextBox10.Text));
            xp.Parameters.AddWithValue("@CurrentFlag", Convert.ToInt32(TextBox11.Text));
            xp.Parameters.AddWithValue("@ModifiedDate", Convert.ToDateTime(TextBox12.Text));

            try
            {
                vid.Open();
                xp.ExecuteNonQuery();
            }
            catch
            {
                vid.Close();
            }

            if (IsPostBack)
            {
                TextBox1.Text = "";
                TextBox2.Text = "";
                TextBox3.Text = "";
                TextBox4.Text = "";
                TextBox5.Text = "";
                TextBox6.Text = "";
                TextBox7.Text = "";
                TextBox8.Text = "";
                TextBox9.Text = "";
                TextBox10.Text = "";
                TextBox11.Text = "";
                TextBox12.Text = "";
            }
        }
    }
}

Try this

using(SqlConnection vid = new SqlConnection("Data Source=JOSAN;Initial Catalog=AdventureWorks2012;Integrated Security=True"))
{
    using(SqlCommand xp = new SqlCommand())
    {
        xp.CommandText = @"Insert into HumanResources.Employee(NationalIDNumber, LoginID, JobTitle, BirthDate, MaritalStatus, Gender, HireDate, SalariedFlag, VacationHours, SickLeaveHours, CurrentFlag, ModifiedDate) Values(@NationalIDNumber, @loginID, @JobTitle, @BirthDate, @MaritalStatus, @Gender, @HireDate, @SalariedFlag, @VacationHours, @SickLeaveHours, @CurrentFlag, @ModifiedDate)"; 
        xp.Connection = vid;
    xp.Parameters.AddWithValue("@NationalIDNumber", TextBox1.Text);
    xp.Parameters.AddWithValue("@LoginID", TextBox2.Text);
    xp.Parameters.AddWithValue("@JobTitle", TextBox3.Text);
    xp.Parameters.AddWithValue("@BirthDate", TextBox4.Text);
    xp.Parameters.AddWithValue("@MaritalStatus", Convert.ToChar(TextBox5.Text);
    xp.Parameters.AddWithValue("@Gender", TextBox6.Text);
    xp.Parameters.AddWithValue("@HireDate", TextBox7.Text);
    xp.Parameters.AddWithValue("@SalariedFlag", TextBox8.Text);
    xp.Parameters.AddWithValue("@VacationHours", TextBox9.Text);
    xp.Parameters.AddWithValue("@SickLeaveHours", TextBox10.Text);
    xp.Parameters.AddWithValue("@CurrentFlag", TextBox11.Text);
    xp.Parameters.AddWithValue("@ModifiedDate", TextBox12.Text);
        try
        {
            vid.Open();
            xp.ExecuteNonQuery();
        }
        catch
        {
            MessgeBox.Show(e.Message.ToString(), "Error Message");
            vid.Close();
        }
        if (IsPostBack)
        {
            TextBox1.Text = "";
            TextBox2.Text = "";
            TextBox3.Text = "";
            TextBox4.Text = "";
            TextBox5.Text = "";
            TextBox6.Text = "";
            TextBox7.Text = "";
            TextBox8.Text = "";
            TextBox9.Text = "";
            TextBox10.Text = "";
            TextBox11.Text = "";
            TextBox12.Text = "";
        }
    }
}

Edit

You can use implicit casting AddWithValue and change the statement like this

xp.Parameters.AddWithValue("@NationalIDNumber", TextBox1.Text);
xp.Parameters.AddWithValue("@LoginID", TextBox2.Text);
xp.Parameters.AddWithValue("@JobTitle", TextBox3.Text);
xp.Parameters.AddWithValue("@BirthDate", TextBox4.Text);
xp.Parameters.AddWithValue("@MaritalStatus", Convert.ToChar(TextBox5.Text);
xp.Parameters.AddWithValue("@Gender", TextBox6.Text);
xp.Parameters.AddWithValue("@HireDate", TextBox7.Text);
xp.Parameters.AddWithValue("@SalariedFlag", TextBox8.Text);
xp.Parameters.AddWithValue("@VacationHours", TextBox9.Text);
xp.Parameters.AddWithValue("@SickLeaveHours", TextBox10.Text);
xp.Parameters.AddWithValue("@CurrentFlag", TextBox11.Text);
xp.Parameters.AddWithValue("@ModifiedDate", TextBox12.Text);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM