C# 将信息从ASP.NET网页插入数据库

C# 将信息从ASP.NET网页插入数据库,c#,asp.net,sql-server,database,C#,Asp.net,Sql Server,Database,我试图允许用户使用教科书和下拉菜单输入员工信息。由于某些我目前无法看到的原因,它没有正确地插入到数据库中。我尝试了SqlCommandMode中的所有查询,它们都正常工作,但那是在我使用函数中的参数之前。下面是我在DBconn.cs页面中的代码 public void insertEmployeeInfo(string firstName, string middleName, string lastName, string address1, string address2, stri

我试图允许用户使用教科书和下拉菜单输入员工信息。由于某些我目前无法看到的原因,它没有正确地插入到数据库中。我尝试了SqlCommandMode中的所有查询,它们都正常工作,但那是在我使用函数中的参数之前。下面是我在DBconn.cs页面中的代码

    public void insertEmployeeInfo(string firstName, string middleName, string lastName, string address1, string address2, string city, string postalCode, string state)
    {
        SqlConnection conn = new SqlConnection(strConnString);
        string sql1 = "INSERT INTO Person.BusinessEntity(ModifiedDate) VALUES (GETDATE())";
        string sql2 = "INSERT INTO Person.Person (ModifiedDate, BusinessEntityID, PersonType, Title, FirstName, MiddleName, LastName, Suffix) VALUES (GETDATE(), (SELECT MAX(PB.BusinessEntityID) AS IDNUM FROM PErson.BusinessEntity AS PB), 'EM', @title, @firstName, @lastName, @suffix)";
        string sql3 = "INSERT INTO Person.Address (AddressLine1, AddressLine2, City, StateProvinceID, PostalCode, ModifiedDate) VALUES (@address1, @address2, @city, @postalCode, (SELECT StateProvinceID FROM Person.StateProvince WHERE StateProvinceCode=@state))";

        try
        {
            conn.Open();
            SqlCommand cmd1 = new SqlCommand(sql1, conn);
            SqlCommand cmd2 = new SqlCommand(sql2, conn);
            SqlCommand cmd3 = new SqlCommand(sql3, conn);
            SqlParameter[] personParams = new SqlParameter[3];
            SqlParameter[] addressParams = new SqlParameter[5];

            //Params for inserts into Person.Person
            personParams[0] = new SqlParameter("@firstName", SqlDbType.VarChar, 50);
            personParams[1] = new SqlParameter("@middleName", SqlDbType.VarChar, 50);
            personParams[2] = new SqlParameter("@lastName", SqlDbType.VarChar, 50);

            //Params for inserts into Person.Address
            addressParams[0] = new SqlParameter("@address1", SqlDbType.VarChar, 50);
            addressParams[1] = new SqlParameter("@address2", SqlDbType.VarChar, 50);
            addressParams[2] = new SqlParameter("@city", SqlDbType.VarChar, 50);
            addressParams[3] = new SqlParameter("@postalCode", SqlDbType.VarChar, 50);
            addressParams[4] = new SqlParameter("@state", SqlDbType.VarChar, 50);

            personParams[0].Value = firstName;
            personParams[1].Value = middleName;
            personParams[2].Value = lastName;

            addressParams[0].Value = address1;
            addressParams[1].Value = address2;
            addressParams[2].Value = city;
            addressParams[3].Value = postalCode;
            addressParams[4].Value = state;

            //insert ModifiedDate into Person.BusinessEntity
            cmd1.CommandType = CommandType.Text;
            cmd1.ExecuteNonQuery();

            for (int i = 0; i < personParams.Length; i++)
            {
                cmd2.Parameters.Add(personParams[i]);
            }

            //insert new employee name information into Person.Person
            cmd2.CommandType = CommandType.Text;
            cmd2.ExecuteNonQuery();

            for (int i = 0; i < addressParams.Length; i++)
            {
                cmd3.Parameters.Add(addressParams[i]);
            }

            //insert new employee address information
            cmd3.CommandType = CommandType.Text;
            cmd3.ExecuteNonQuery();
        }
        catch (System.Data.SqlClient.SqlException ex)
        {
            string msg = "Insert Error:";
            msg += ex.Message;
            throw new Exception(msg);
        }
        finally
        {
            conn.Close();
        }
    }

在您的连接上启用MARS:


这里有一堆代码。你有例外吗?如果是,在哪里?不要以为我们马上就知道你的代码出了什么问题,你需要解释你想要的答案。我道歉。不,我没有任何例外。当我为演示单击insert按钮时,它似乎不会调用查询,也不会将用户信息插入数据库。我假设我需要添加更多来插入,但不确定我需要添加什么除了为什么不插入之外,我建议您调用存储过程,而不是三个单独的插入。您在应用程序中执行了吗?在代码中设置一个断点,并逐行检查它,以确保它按预期执行。我正在mac上通过vm运行它,调试一直不正常。虽然我几乎可以肯定这是page.asp.cs中的代码,但我不知道该放什么。我是asp.net的新手,所以很抱歉我对此事缺乏了解
    protected void Insert_Click(object sender, EventArgs e)
{
    dbcon.insertEmployeeInfo(TxtFirstName.Text, TxtMiddleName.Text, TxtLastName.Text, TxtAddress1.Text, TxtAddress2.Text, TxtCity.Text, TxtPostalCode.Text, State.Text);
    Response.Write("Record was successfully added!");
}