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





Проблема в пользовательском интерфейсе ... вам нужно отправить код 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 вытесняет следующее из своего текстового поля и итак и полностью пропустить последнее значение
хорошо, я думаю, я действительно понимаю вас, потому что я не использую таблицу, я перетаскиваю текстовые поля. но тогда почему данные вообще извлекаются
Возможно, мне это не хватает, но я не вижу в вашем коде ничего о раскрывающемся списке. Я бы начал с проверки, что ваш sproc возвращает правильные значения. Возможно, вы захотите явно указать свои значения в своем выборе вместо использования *.