Проблема с сеансом передачи на другой странице в asp. net? - PullRequest
0 голосов
/ 07 февраля 2020

Я создал две отдельные формы и храню данные в одной таблице, но проблема в том, что хранилище данных по отдельности строки? Я хочу хранить данные в одной строке.

, а затем я создал две отдельные формы и храню данные в одной таблице, и мои данные хранятся в отдельной строке, что является проблемой?

enter image description here

имя таблицы: менеджер

Имя поля базы данных:

- managerid int pk autoincrement
- firstname varchar(50)
- lastname varchar(50)
- address varchar(50)
- permanantaddress varchar(50)
- mno int
- experiance int
- currentcompanyname varchar(50)
- previouscompanyname varchar(50)
- currentsalary int
- expectedsalary    int 

Registrationform.aspx

        <div>
           FirstName: <asp:TextBox ID="txtfname" runat="server"></asp:TextBox>
            <br />
           lastName: <asp:TextBox ID="txtlname" runat="server"></asp:TextBox>
            <br />
            <asp:Button ID="Button1" runat="server" Text="Insert" OnClick="Button1_Click" />
        </div>

Registrationform.aspx.cs

        protected void Button1_Click(object sender, EventArgs e)
        {
            string query = "Insert into manager (firstname,lastname) values(@firstname,@lastname)SELECT SCOPE_IDENTITY()";
            SqlCommand cmd = new SqlCommand(query, cn);
            cmd.CommandType = CommandType.Text;

            cmd.Parameters.AddWithValue("@firstname", txtfname.Text);
            cmd.Parameters.AddWithValue("@lastname",txtlname.Text);

            cn.Open();

            int? primaryKey = Convert.ToInt32(cmd.ExecuteScalar());
            this.Session["primaryKey"] = primaryKey;


            if(primaryKey != null)
            {
                Response.Redirect("Contactus.aspx");
            }

            cmd.ExecuteNonQuery();
            cn.Close();

        }

Contactus.aspx

            Address:
            <asp:TextBox ID="txtadd" runat="server"></asp:TextBox>
            <br />
            PermanantAddress:
            <asp:TextBox ID="txtperaddress" runat="server"></asp:TextBox>
            <br />
            Mno:
            <asp:TextBox ID="txtmno" runat="server"></asp:TextBox>
            <br />
            <asp:Button ID="Button1" runat="server" Text="Insert" OnClick="Button1_Click" />

Contactus.aspx.cs

        string sessionvariable;
        protected void Page_Load(object sender, EventArgs e)
        {
           sessionvariable = Session["primaryKey"].ToString();
        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            string query = "update manager set address=@address,permanantaddress=@permanantaddress,mno=@mno where managerid=@managerid";

            SqlCommand cmd = new SqlCommand(query, cn);
            cmd.CommandType = CommandType.Text;

            cmd.Parameters.AddWithValue("@address", txtadd.Text);
            cmd.Parameters.AddWithValue("@permanantaddress", txtperaddress.Text);
            cmd.Parameters.AddWithValue("@mno", txtmno.Text);

            cn.Open();

            if (sessionvariable != null)
            {  
                **here give an error System.Data.SqlClient.SqlException: Must declare the scalar variable "@managerid"**

                cmd.ExecuteNonQuery();
            }

            cn.Close();

        }

Я хочу чтобы хранить данные в одной строке.

см. мое окно просмотра. Image :

моя проблема в том, что хранилище данных в отдельной строке является моей проблемой?

введите описание изображения здесь

выдайте ошибку: здесь выдайте ошибку System.Data.SqlClient.SqlException: необходимо объявить скалярную переменную "@managerid"

1 Ответ

0 голосов
/ 08 февраля 2020

попробуйте

    string sessionvariable;
    protected void Page_Load(object sender, EventArgs e)
    {

    }

    protected void Button1_Click(object sender, EventArgs e)
    {
        sessionvariable = Session["primaryKey"].ToString();
        string query = "update manager set address=@address,permanantaddress=@permanantaddress,mno=@mno where managerid=@managerid";

        SqlCommand cmd = new SqlCommand(query, cn);
        cmd.CommandType = CommandType.Text;

        cmd.Parameters.AddWithValue("@address", txtadd.Text);
        cmd.Parameters.AddWithValue("@permanantaddress", txtperaddress.Text);
        cmd.Parameters.AddWithValue("@mno", txtmno.Text);

        cn.Open();

        if (sessionvariable != null)
        {  
            **here give an error System.Data.SqlClient.SqlException: Must declare the scalar variable "@managerid"**

            cmd.ExecuteNonQuery();
        }

        cn.Close();

    }

Подробнее

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...