У меня есть 4 таблицы SQL: продукт, поставщик, клиент и заказ.Я создал таблицу в C #, которая позволит пользователям создавать, читать, обновлять и удалять элементы из каждой таблицы.
В таблице заказов я хочу получить такие данные, как наименование продукта, цена,Имя клиента и поставщик из других таблиц.
Первое, что я пытаюсь - это ProductName, и я хотел бы, чтобы элементы в поле имени из таблицы продуктов отображались в виде раскрывающегося списка в поле в заказе.Таблица.Я думал, что настроил его правильно, но выпадающий идентификатор из моего файла OrderForm.aspx выдавал ошибку и теперь видел идентификатор из файла OrderForm.aspx.cs.Я назвал раскрывающийся список, и теперь он отображается при загрузке страницы, но вы не можете изменить элемент или добавить его в список.
Я попытался переместить раздел, назначив раскрывающийся список переменнойчтобы найти идентификатор раскрывающегося списка, и это сделало раскрывающийся список доступным, но кнопка добавления больше не работает.Я прокомментировал некоторые вещи, которые я пробовал в приведенном ниже коде.
namespace VirtualStore
{
public partial class OrderForm : System.Web.UI.Page
{
string connectionString = @"Data Source=rdw-etracsql01;Initial Catalog=SALES_KD;Integrated Security=True;";
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
PopulateGridview();
PopulateDropdown();
}
else
{
// PopulateTextFields();
}
}
/* public void PopulateTextFields()
{
SqlCommand sql = new SqlCommand("SELECT * FROM product");
using (SqlConnection sqlCon2 = new SqlConnection(connectionString))
sqlCon2.Open();
SqlDataReader listProductPrices;
listProductPrices = sql.ExecuteReader();
ds = listProductPrices;
} */
void PopulateDropdown()
{
DataSet ds = new DataSet();
using (SqlConnection sqlCon2 = new SqlConnection(connectionString))
{
sqlCon2.Open();
SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM product", sqlCon2);
da.Fill(ds);
}
DropDownList myDDL = (DropDownList)gvOrder.FooterRow.FindControl("DropProductNameFooter");
// myDDL.DataTextField = ds.Tables[0].Columns["ProductName"].ToString();
// myDDL.DataValueField = ds.Tables[0].Columns["id"].ToString();
myDDL.DataSource = ds; //.Tables[0];
myDDL.DataTextField = "ProductName";
myDDL.DataValueField = "ProductID";
myDDL.DataBind();
TextBox ProductPrice = (TextBox)gvOrder.FooterRow.FindControl("txtProductPriceFooter");
string ProductID = myDDL.DataValueField.ToString();
ProductPrice.Text = ds.Tables[0].Select("ProductID=" + ProductID)[0]["ProductPrice"].ToString();
}
void PopulateGridview()
{
DataTable dtbl = new DataTable();
using (SqlConnection sqlCon = new SqlConnection(connectionString))
{
sqlCon.Open();
SqlDataAdapter sqlDa = new SqlDataAdapter("SELECT * FROM [order]", sqlCon);
sqlDa.Fill(dtbl);
}
if (dtbl.Rows.Count > 0)
{
gvOrder.DataSource = dtbl;
gvOrder.DataBind();
}
else
{
dtbl.Rows.Add(dtbl.NewRow());
gvOrder.DataSource = dtbl;
gvOrder.DataBind();
gvOrder.Rows[0].Cells.Clear();
gvOrder.Rows[0].Cells.Add(new TableCell());
gvOrder.Rows[0].Cells[0].ColumnSpan = dtbl.Columns.Count;
gvOrder.Rows[0].Cells[0].Text = "No Data Found ...!";
gvOrder.Rows[0].Cells[0].HorizontalAlign = HorizontalAlign.Center;
}
}
protected void gvOrder_RowCommand(Object sender, GridViewCommandEventArgs e)
{
try
{
if (e.CommandName.Equals("AddNew"))
{
using (SqlConnection sqlCon = new SqlConnection(connectionString))
{
sqlCon.Open();
string query = "INSERT INTO [order] (ProductName, ProductPrice, ProductQuantity, CustomerID, TotalPrice, OrderDate) VALUES (@ProductName, @ProductPrice, @ProductQuantity, @CustomerID, @TotalPrice, @OrderDate)";
SqlCommand sqlCmd = new SqlCommand(query, sqlCon);
sqlCmd.Parameters.AddWithValue("@ProductName", (gvOrder.FooterRow.FindControl("txtProductNameFooter") as TextBox).Text.Trim());
sqlCmd.Parameters.AddWithValue("@ProductPrice", (gvOrder.FooterRow.FindControl("txtProductPriceFooter") as TextBox).Text.Trim());
sqlCmd.Parameters.AddWithValue("@ProductQuantity", (gvOrder.FooterRow.FindControl("txtProductQuantityFooter") as TextBox).Text.Trim());
sqlCmd.Parameters.AddWithValue("@CustomerID", (gvOrder.FooterRow.FindControl("txtCustomerIDFooter") as TextBox).Text.Trim());
sqlCmd.Parameters.AddWithValue("@TotalPrice", (gvOrder.FooterRow.FindControl("txtTotalPriceFooter") as TextBox).Text.Trim());
sqlCmd.Parameters.AddWithValue("@OrderDate", (gvOrder.FooterRow.FindControl("txtOrderDateFooter") as TextBox).Text.Trim());
sqlCmd.ExecuteNonQuery();
PopulateGridview();
lblSuccessMessage.Text = "New Record Added";
lblErrorMessage.Text = "";
}
}
}
catch (Exception ex)
{
lblSuccessMessage.Text = "";
lblErrorMessage.Text = ex.Message;
}
}