|
|
|
[C#] Code Error ตรง com.ExecuteNonQuery(); ครับ ช่วยทีครับ ขอบคุณครับ |
|
|
|
|
|
|
|
ขอ Error Message ด้วยครับ
|
|
|
|
|
Date :
2011-06-25 20:02:54 |
By :
webmaster |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Error Message นะครับ
"There is already an open DataReader associated with this Command which must be closed first."
ขึ้นว่าอันนี้ครับ ผมสร้าง เมดตอส ManageStoge() แล้วให้ เวลาคลิกปุ่มบันทึก แล้วมาเรียกใช้ครับ
|
|
|
|
|
Date :
2011-06-25 22:12:36 |
By :
gunner |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
น่าจะต้อง close ตัว dr ก่อนครับ
|
|
|
|
|
Date :
2011-06-25 22:24:14 |
By :
webmaster |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ควรจะ close dr หลังจากจบลูป while นะครับ
|
|
|
|
|
Date :
2011-06-26 00:27:10 |
By :
ppanchai |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
string sql = "Update Product set UnitInStock = UnitInStock - '" + dr["Quantity"].ToString() + "' WHERE PID = '" + dr["PID"].ToString() + "'";
แนะนำว่าไปให้ไป debug
แล้วเอาค่าที่ได้จากตัวแปร sql ไปลองรันที่ sql ดูเลยครับ มันจะได้รู้เลยว่าผิดตรงไหน
|
|
|
|
|
Date :
2011-06-26 00:40:10 |
By :
nong1210 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองเอา dr.close ไปปิด หลังวนลูปwhile แล้วก็ error แบบเดิมครับ หลัง for ก็ยัง error แบบเดิม
|
|
|
|
|
Date :
2011-06-26 11:14:17 |
By :
gooner |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Update Product set UnitInStock = UnitInStock - '1' WHERE PID = '1'
UnitInStock - '1' เนื่องด้วย UnitInStock เป็น int และ '1' เป็น string จึงไม่สามารถลบกันได้ครับ โค้ดที่ถูกน่าจะเป็นแบบนี้ครับ
ลองดูครับ
string sql = "Update Product set UnitInStock = UnitInStock - " + dr["Quantity"].ToString() + " WHERE PID = '" + dr["PID"].ToString() + "'";
ผมลบ ' ออกไปครับ
|
ประวัติการแก้ไข 2011-06-26 13:44:24
|
|
|
|
Date :
2011-06-26 13:36:47 |
By :
nong1210 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
คือ มันยังติดตรง
Error อ่ะครับ
Error Message นะครับ
"There is already an open DataReader associated with this Command which must be closed first."
ผมก็ลองเอา dr.close ไปปิด หลังวนลูปwhile แล้วก็ error แบบเดิมครับ หลัง for ก็ยัง error แบบเดิม
|
|
|
|
|
Date :
2011-06-26 14:32:21 |
By :
ang89gunner |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ใช้เป็นการอ่านด้วย DataTable แทนครับ
Code (C#)
SqlConnection objConn = new SqlConnection();
SqlCommand objCmd = new SqlCommand();
SqlDataReader dtReader;
String strConnString,strSQL;
void Page_Load(object sender,EventArgs e)
{
strConnString = "Server=localhost;Uid=sa;PASSWORD=;database=mydatabase;Max Pool Size=400;Connect Timeout=600;";
objConn = new SqlConnection(strConnString);
objConn.Open();
if(!Page.IsPostBack)
{
ViewData();
}
}
void ViewData()
{
//*** DataTable ***//
SqlDataAdapter dtAdapter;
DataTable dt = new DataTable();
strSQL = "SELECT * FROM customer WHERE CustomerID = '"+ Request.QueryString["CustomerID"] +"' ";
dtAdapter = new SqlDataAdapter(strSQL, objConn);
dtAdapter.Fill(dt);
if(dt.Rows.Count > 0)
{
this.txtCustomerID.Text = (string)dt.Rows[0]["CustomerID"];
this.txtName.Text = (string)dt.Rows[0]["Name"];
this.txtEmail.Text = (string)dt.Rows[0]["Email"];
this.txtCountryCode.Text = (string)dt.Rows[0]["CountryCode"];
this.txtBudget.Text = (string)dt.Rows[0]["Budget"].ToString();
this.txtUsed.Text = (string)dt.Rows[0]["Used"].ToString();
}
}
|
|
|
|
|
Date :
2011-06-26 15:09:49 |
By :
webmaster |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณครับ ตอนนี้ ตัด Stock ได้ละครับ
เหลือ ถ้า Stock เป้น 0 แล้วให้ แจ้งเตือน ก่อนกด save ครับ
|
|
|
|
|
Date :
2011-06-26 16:43:48 |
By :
ang89gunner |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขึ้นแบบนี้หมายความว่าไงค่ะ
มันฟ้องว่าเป็นตัวนี้อะค่ะ ตัวที่ไฮไลคไว้อะค่ะ
|
|
|
|
|
Date :
2016-05-02 01:56:48 |
By :
ll |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 03
|