Как получить данные из двух таблиц в SQL и заполнить текстовые поля на веб-странице ASP?

USE [Apartmentmanagementsystem]
GO
/****** Object: StoredProcedure [dbo].[userview] Script Date: 6/15/2018 7:52:10 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER procedure [dbo].[userview]
@tenant_id int

as 
BEGIN 

    select * 
    from Tenant  
    join Lease on Tenant.tenant_id=Lease.tenant_id 
    where Tenant.tenant_id=@tenant_id;

END

это моя хранимая процедура.

Код C# - это

SqlConnection constring = new SqlConnection(@"Data Source=MOSH-PC\SQLEXPRESS;Initial Catalog=Apartmentmanagementsystem;Integrated Security=True");
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                clear();


                   if (!String.IsNullOrEmpty(Request.QueryString["id"]))
                {

                    int tenant_id = Convert.ToInt32(Request.QueryString["id"]);
                    if (constring.State == ConnectionState.Closed)
                    {
                        constring.Open();
                        SqlDataAdapter sqda = new SqlDataAdapter("userview", constring);
                        sqda.SelectCommand.CommandType = CommandType.StoredProcedure;
                        sqda.SelectCommand.Parameters.AddWithValue("@tenant_id", tenant_id);
                        DataTable dtbl = new DataTable();
                        sqda.Fill(dtbl);
                        hftenant_id.Value = tenant_id.ToString();
                        if (dtbl.Rows.Count > 0)
                        {
                            txtFName.Text = dtbl.Rows[0][1].ToString();
                            txtLName.Text = dtbl.Rows[0][2].ToString();
                            txtPhone.Text = dtbl.Rows[0][3].ToString();
                            txtEmail.Text = dtbl.Rows[0][4].ToString();
                            txtAge.Text = dtbl.Rows[0][5].ToString();
                            ddlGender.Items.FindByValue(dtbl.Rows[0][6].ToString()).Selected = true;
                            txtSdate.Text = dtbl.Rows[0][7].ToString();
                            txtEdate.Text = dtbl.Rows[0][8].ToString();
                            txtDeposit.Text = dtbl.Rows[0][9].ToString();
                        }

                    }
                }
            }

        }
        public void clear()
        {
            txtFName.Text = txtLName.Text = txtPhone.Text = txtEmail.Text = txtAge.Text = ddlGender.Text = txtSdate.Text = txtEdate.Text = txtDeposit.Text = "";
            hftenant_id.Value = "";
        }
        protected void btnSave1_Click(object sender, EventArgs e)
        {

            try
            {
                if (constring.State == ConnectionState.Closed)
                    constring.Open();
                SqlCommand sqlcmd = new SqlCommand("SPnew1", constring);
                sqlcmd.CommandType = CommandType.StoredProcedure;
                sqlcmd.Parameters.AddWithValue("@tenant_id", Convert.ToInt32(hftenant_id.Value == "" ? "0" : hftenant_id.Value));
                sqlcmd.Parameters.AddWithValue("@F_Name", txtFName.Text.Trim());
                sqlcmd.Parameters.AddWithValue("@L_Name", txtLName.Text.Trim());
                sqlcmd.Parameters.AddWithValue("@Phone", txtPhone.Text.Trim());
                sqlcmd.Parameters.AddWithValue("@Email", txtEmail.Text.Trim());
                sqlcmd.Parameters.AddWithValue("@Age", txtAge.Text.Trim());
                sqlcmd.Parameters.AddWithValue("@Gender", ddlGender.SelectedValue);
                sqlcmd.Parameters.AddWithValue("@lease_id", 0);
                sqlcmd.Parameters.AddWithValue("@initial_date", txtSdate.Text.Trim());
                sqlcmd.Parameters.AddWithValue("@end_date", txtEdate.Text.Trim());
                sqlcmd.Parameters.AddWithValue("@deposit", txtDeposit.Text.Trim());
                sqlcmd.ExecuteNonQuery();
                clear();

            }

            catch (Exception ex)
            {

            }
            finally
            {
                constring.Close();
            }

Проблема в том, что когда я набираю id, например ?id=1, он отображается, но таблица Tenant выталкивает содержимое lease не на свое место.

Думаю, проблема в раскрывающемся списке.

Как получить данные из двух таблиц SQL и заполнить текстовые поля на веб-странице ASP?

Возможно, мне это не хватает, но я не вижу в вашем коде ничего о раскрывающемся списке. Я бы начал с проверки, что ваш sproc возвращает правильные значения. Возможно, вы захотите явно указать свои значения в своем выборе вместо использования *.

Rahn 15.06.2018 19:12

выпадающий список - это ddlGender. после того, как его значение было отображено по какой-то причине, create_date таблицы Tenant, которой не должно быть, занимает место initial_date первого значения таблицы Lease, таким образом выталкивая все, что ниже пола ddl, неуместно.

moshina 15.06.2018 19:32
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
2
47
1

Ответы 1

Проблема в пользовательском интерфейсе ... вам нужно отправить код aspx или добавить код в репозиторий GIT. Для начала .. используйте таблицу html

 <table>
  <tr>
    <td>Gender: </td>
    <td> <asp:dropdownlist....></asp:dropdownlist> </td>
    <td>other : </td>
    <td> <asp:textbox..some other control..></asp:dropdownlist> </td>
  </tr>
  <tr>
    <td colspan = "4">your data grid / html shoudl go here to display data from your 
    stored procedure. <td>
   </tr>
 </table>

Не стесняйтесь добавлять комментарии, если вам нужна дополнительная помощь, добавление вашей aspx-страницы поможет получить более конкретный ответ на ваш вопрос.

спасибо за вышеуказанное, но моя проблема в том, что первое поле из Lease выбрасывается из его текстового поля по дате создания, которая является date.now () и не должна быть там, поэтому первое значение из Lease вытесняет следующее из своего текстового поля и итак и полностью пропустить последнее значение

moshina 15.06.2018 23:06

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

moshina 15.06.2018 23:09

Другие вопросы по теме