|
|
|
จะเอาข้อมูลใน gridview ไปโชว์ใน txtBox รันผ่าน แต่มันไม่โชว์ข้อมูล ไม่รู้ผิดตรงไหน ช่วยดูให้ทีคะ |
|
|
|
|
|
|
|
จะเอาข้อมูลใน gridview ไปโชว์ใน txtBox รันผ่าน แต่มันไม่โชว์ข้อมูล
คือ จะให้ user เลือกเชคบ๊อค หน้า gridview กดเลือกแล้ว ข้อมูลจะ มาโชว์ ใน txtBox ให้แก้ไขอะคะ
แต่ตอนนี้ มันไม่โชว์ ไม่รุ้ผิดตรงไหนอะคะ คิวรีก้อถุกละนะคะ ยังไง รบกวนหน่อยคะ ^^
จะให้ ข้อมูลที่โชว์ใน gridview ขึ้นอยู่กับ ค่าใน txtbox_poNo อะคะ
Code (C#)
void BindData()
{
String keyword = this.txtbox_poNo.Text;
SqlConnection myConn = new SqlConnection();
int rowcount = 0;
myConn = new SqlConnection(ConfigurationManager.ConnectionStrings["dbInvoice"].ConnectionString);
String Sql = "SELECT ORDER_PRODUCT.order_product_id, ORDER_PRODUCT.CUSTOMER_PO_po_id, ORDER_PRODUCT.line_no, STOCK_PRODUCT.product_fullname, ORDER_PRODUCT.PRICELIST_price_id, ORDER_PRODUCT.qty, ORDER_PRODUCT.balance_qty, ORDER_PRODUCT.request_date, ORDER_PRODUCT.committed_date, ORDER_PRODUCT.last_update, EMPLOYEE.emp_name FROM ORDER_PRODUCT INNER JOIN EMPLOYEE ON ORDER_PRODUCT.emp_id = EMPLOYEE.emp_id INNER JOIN STOCK_PRODUCT ON ORDER_PRODUCT.product_id = STOCK_PRODUCT.stock_product_id WHERE ORDER_PRODUCT.CUSTOMER_PO_po_id = '" + keyword + "'";
myConn.Open();
SqlDataAdapter da = new SqlDataAdapter(Sql, myConn);
DataSet ds = new DataSet();
da.Fill(ds, "ORDER_PRODUCT");
rowcount = ds.Tables[0].Rows.Count;
if (rowcount > 0)
{
OrderTable.DataSource = ds;
OrderTable.DataBind();
OrderTable.Visible = true;
myConn.Close();
}
else
{
lblLine.Visible = true;
lblLine.Text = "This PO Number doesn't have any Line (Products)";
OrderTable.Visible = false;
}
}
protected void BtnEdit_Click(object sender, EventArgs e)
{
int check_count = 0;
String keyID = "";
String productid = "";
String priceid = "";
CheckBox chkbox = new CheckBox();
DbProviderFactory factory = DbProviderFactories.GetFactory("System.Data.SqlClient");
IDbConnection con = factory.CreateConnection();
con.ConnectionString = ConfigurationManager.ConnectionStrings["dbInvoice"].ToString();
IDbCommand com = factory.CreateCommand();
com.Connection = con;
con.Open();
foreach (GridViewRow grdRow in OrderTable.Rows)
{
chkbox = (CheckBox)Convert.ChangeType(((CheckBox)grdRow.FindControl("checkdelorder")), typeof(CheckBox));
if (chkbox.Checked)
{
keyID = (String)OrderTable.DataKeys[grdRow.RowIndex].Value.ToString();
Session["update_order_id"] = keyID;
check_count++;
chkbox.Checked = false;
}
}
if (check_count == 1)
{
com.CommandText = "SELECT CUSTOMER_PO_po_id,product_id,PRICELIST_price_id,line_no,qty, balance_qty,request_date,committed_date FROM ORDER_PRODUCT WHERE order_product_id = '" + keyID + "'";
using (IDataReader reader = com.ExecuteReader())
{
while (reader.Read())
{
productid = reader.GetString(1).ToString(); // อยู่คนละตาราง เลยแยกไป คิวรี แยกต่างหาก อะคะ
priceid = reader.GetString(2).ToString(); // อยู่คนละตาราง เลยแยกไป คิวรี แยกต่างหาก อะคะ
this.txtbox_qty.Text = reader.GetInt32(5).ToString(); // จะให้โชว์ข้อมูลใน txtbox_qty คะ
}
reader.Close();
con.Close();
}
com.CommandText = "SELECT product_name FROM STOCK_PRODUCT WHERE stock_product_id = '" + productid + "'";
using (IDataReader reader = com.ExecuteReader())
{
while (reader.Read())
{
this.txtbox_productName.Text = reader.GetString(0); // จะให้โชว์ข้อมูลใน txtbox_productName คะ
}
reader.Close();
con.Close();
}
com.CommandText = "SELECT commercial_price FROM PRICELIST WHERE price_id = '" + priceid + "'";
using (IDataReader reader = com.ExecuteReader())
{
while (reader.Read())
{
this.txtbox_price.Text = reader.GetString(0); // จะให้โชว์ข้อมูลใน txtbox_price คะ
}
reader.Close();
con.Close();
}
com.CommandText = "SELECT description FROM STOCK_PRODUCT WHERE stock_product_id = '" + productid + "'";
using (IDataReader reader = com.ExecuteReader())
{
while (reader.Read())
{
this.txtbox_descritption.Text = reader.GetString(0); // จะให้โชว์ข้อมูลใน txtbox_descritption คะ
}
reader.Close();
con.Close();
}
}
}
Tag : - - - -
|
|
|
|
|
|
Date :
2010-04-06 00:24:25 |
By :
little_H2O |
View :
1308 |
Reply :
4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
มือใหม่ใช่ไหมครับ อยากให้เขียนใหม่จริงๆ รันนะรันได้แต่โค้ดมันแปลกๆ ตอนผมหัดเขียนใหม่ๆ
งานงานนึงเขียนใหม่สามสี่รอบ ตอนนี้คล่องปรื๋อ แต่แนะให้แล้วกัน
1. ใช้ dataadapter ไม่ต้องเปิดปิด connection ก็ได้เพราะมันเป็น connectionless
2. ทำไมไม่ประกาศ dataset ไว้ที่ global จะได้ไม่ต้องมา query หลายรอบ เวลาหาก็ใช้
Code (C#)
DataRow[] ArrayDr= ds.Tables["ORDER_PRODUCT"].Select("order_product_id='" + keyID + "'");
3. ถ้าจะเขียนแบบนี้จริงๆ ตรงท้ายๆ ลูป while เอา con.Close(); ออกซะ เพราะปิดแล้วไม่เห็นเปิด datareader มันจะ error
4. ผมสันนิษฐานว่ามันไม่เข้า if (check_count == 1) นะมันเลยไม่ error ตรวจดู check_count++ ว่ามันเจอ checkbox หรือเปล่า
|
|
|
|
|
Date :
2010-04-06 08:25:29 |
By :
tungman |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แฮะๆ มือใหม่มากเลยคะ สำหรับภาษานี้ - -" ขอบคุณนะคะ ที่แนะนำ
คือ ที่คิวรี หลายรอบ คือ มัน ตารางย่อย มันเยอะ ละมัน เกี่ยวกันอะคะ ^^"
ตอนนี้แก้ แล้ว ก้อยังไม่ได้เลย T-T แก้ไป แก้มา เออเร่ออีก ก้อเลยไม่รุ้ จะไปต่อยังไง
รบกวนใครก้อได้ ช่วยทีคะ โปรเจคจบ เด่วจบไม่ทัน ซัมเมอ T-T
|
|
|
|
|
Date :
2010-04-07 04:16:26 |
By :
little_H2O |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แง้ๆ มะมีคนตอบเรย T-T
|
|
|
|
|
Date :
2010-04-26 16:03:33 |
By :
little_H2O |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 00
|