|
|
 Rank: มือสมัครเล่น Groups: Member
Joined: 4/12/2008 Posts: 15
|
ผมทำหน้าเว็บ Login.aspx
รันได้นะคับ แต่พอกรอกข้อมูล username กับ password ก็ติด
Warning CurrentName = (string)com.ExecuteScalar();
Incorrect syntax near '='.
ไม่ทราบว่าเป็นเพราะสาเหตุอะไร
|
|
Rank: มือสมัครเล่น Groups: Member
Joined: 3/4/2008 Posts: 12 Location: thai
|
ไม่แน่ใจนะครับ น่าจะเป็นตรงที่ if ปะคับ น่าจะเป็น == เวลาเปลี่ยนเทียบ ดันไปใช้ = เฉยป่าวเอ่ย
|
|
 Rank: มือสมัครเล่น Groups: Member
Joined: 4/12/2008 Posts: 15
|
string CurrentName;
CurrentName = (string)com.ExecuteScalar(); <<== มันติดตรงนี้คับ
if (CurrentName != NULL)
{
Session["UserAuthentication"] = username;
Session.Timeout = 1;
Response.Redirect("Database.aspx");
}
else
{
Session["UserAuthentication"] = "";
Response.Redirect("Login.aspx");
}
|
|
Rank: มือสมัครเล่น Groups: Member
Joined: 3/4/2008 Posts: 12 Location: thai
|
CurrentName = (string)com.ExecuteScalar(); <<== มันติดตรงนี้คับ
จะConvert มันใช่ม่ะคับ
ใช้เป็นงี้ได้ม่ะคับ
CurrentName = com.ExecuteScalar().ToString();
|
|
 Rank: มือสมัครเล่น Groups: Member
Joined: 4/12/2008 Posts: 15
|
ยังไม่ได้เลยคับ ผมลองทำแล้ว
ติดตรง
CurrentName = com.ExecuteScalar().ToString();
|
|
Rank: มือสมัครเล่น Groups: Member
Joined: 3/4/2008 Posts: 12 Location: thai
|
.ExecuteScalar() สงสัยต้องดู method นี้ แล้วแหละคับนะ
พวก อาจาน กับเซียนๆ ไม่อยุ่ด้วย ผมก็ไม่ค่อยเก่งนะ - -"
|
|
 Rank: มือมืด Groups: Member
Joined: 3/21/2008 Posts: 53 Location: Whenever you code,you've reached my places.
|
CurrentName = com.ExecuteScalar() + "";
ถ้าไม่หายเป็นที่ SQL Query string Love = λygh·g(y(y)(h,g), y(y)(h,g))
Code:Love(Love)(I, U) = λgh·g(Love(Love)(h,g), Love(Love)(h,g))(I, U) = λh·I(Love(Love)(h,I), Love(Love)(h,I))(U) = I(Love(Love)(U,I), Love(Love)(U,I)) = I(Love(Love)(U,I)) Love Combinator!!!!
|
|
 Rank: มือเทพ Groups: Member
Joined: 12/6/2007 Posts: 354 Location: bkk
|
อืม ตรง ที่ประกาศตัวแปรที่ชื่อ CurrentName ( String CurrentName; ) อะครับ ประกาศเป็นตัวแปรคลาสหรือว่าเป็นตัวแปรแบบ Local ( อยู่ในเมธอด ) อะครับ ถ้าประกาศไว้ในเมธอด ผมอยากให้ลองกำหนด
ค่าเริ่มต้นของตัวแปร String นี้ดู ซึ่ง ตัวแปรชนิด String เป็น reference type ก็ให้กำหนดค่าเริ่มต้นเป็น null ดังนี้
String CurrentName = null;
หรือ
String CurrentName = " ";
CurrentName = (string)com.ExecuteScalar();
แล้วค่อยนำชื่อตัวแปร CurrentName ไปใช้
แต่ถ้าเป็นตัวแปรคลาส ( อยู่นอกเมธอดใดๆ ) ก็ไม่จำเป็นที่ต้องกำหนดค่าเริ่มต้น ลองดูนะครับถ้ามี Error ก็รบกวนบอก Error มาหน่อยว่ามัน Error ว่าอะไร [With great power comes great responsibility]
|
|
 Rank: มือมืด Groups: Member
Joined: 3/21/2008 Posts: 53 Location: Whenever you code,you've reached my places.
|
(string)com.ExecuteScalar(); //แบบนี้เขียนไม่ได้มั้งคุณ pae
ต้องเป็น
string CurrentName = com.ExecuteScalar().ToString();
หรือ
string CurrentName = com.ExecuteScalar() + "";
มากกว่าน่ะผมว่า
Love = λygh·g(y(y)(h,g), y(y)(h,g))
Code:Love(Love)(I, U) = λgh·g(Love(Love)(h,g), Love(Love)(h,g))(I, U) = λh·I(Love(Love)(h,I), Love(Love)(h,I))(U) = I(Love(Love)(U,I), Love(Love)(U,I)) = I(Love(Love)(U,I)) Love Combinator!!!!
|
|
Rank: มือเทพ Groups: Member
Joined: 3/6/2008 Posts: 196 Location: TH
|
digitake wrote:
(string)com.ExecuteScalar(); //แบบนี้เขียนไม่ได้มั้งคุณ pae
ต้องเป็น
string CurrentName = com.ExecuteScalar().ToString();
หรือ
string CurrentName = com.ExecuteScalar() + "";
มากกว่าน่ะผมว่า
(string) เป็นการ Boxing ครับ ทำงานได้เหมือนกับ .ToString() ครับ แต่การเขียนแบบนี้จะไม่เป็น OOP ครับ ตามหลักแล้วต้องใช้ .ToString แต่ .ToString ไม่อาจจะใช้งานได้ทุกกรณีครับ แต่เจ้า (string) หรือการ Boxing กลับใช้งานได้หลากกรณีมากกว่า (เช่นการ convert ที่มี error)
|
|
 Rank: มือสมัครเล่น Groups: Member
Joined: 4/12/2008 Posts: 15
|
warning ตรง CurrentName = (string)com.ExecuteScalar();
ว่า Incorrect syntax near '='. คับ
|
|
Rank: มือเทพ Groups: Member
Joined: 3/6/2008 Posts: 196 Location: TH
|
แล้วผลของ Warn เป็นยังไงบ้างครับ แค่โชว์หรือทำงานผิดพลาด หรือทำงานไม่ได้ครับ
|
|
 Rank: มือสมัครเล่น Groups: Member
Joined: 4/12/2008 Posts: 15
|
หน้า login ก็รันได้คับ
แต่พอกดปุ่ม login ก็ติด warning เลยคับ
ไม่ไปหน้าอื่นเลยคับ
|
|
Rank: มือเทพ Groups: Member
Joined: 3/6/2008 Posts: 196 Location: TH
|
ขอ code ที่เกี่ยวข้องกับปัญหาทั้งหมดได้ไหมครับ ถ้าไม่สดวก post ก็ไปฝากไว้แล้วเอา link มาก็ได้ครับ
|
|
 Rank: มือสมัครเล่น Groups: Member
Joined: 4/12/2008 Posts: 15
|
|
|
Rank: มือเทพ Groups: Member
Joined: 3/6/2008 Posts: 196 Location: TH
|
ดูจาก code แล้วผมว่ามันไม่น่าจะมาจากตรงนี้หรอกครับ ลองดูก่อนหน้านี้ดูครับ
ก่อนหน้านี้ซัก 3-5 บรรทัดครับ ไม่แน่ใจนะครับว่าไช่ 100% แต่น่าสงสัยครับ
หรือไม่ก็เซฟรูป warn มาให้ดูหน่อยครับ แต่เท่าที่ดู(รันไม่ได้เพราะว่า code ที่ให้มาไม่สมบูรณ์)
|
|
 Rank: มือมืด Groups: Member
Joined: 3/21/2008 Posts: 53 Location: Whenever you code,you've reached my places.
|
mrxc wrote:
(string) เป็นการ Boxing ครับ ทำงานได้เหมือนกับ .ToString() ครับ แต่การเขียนแบบนี้จะไม่เป็น OOP ครับ ตามหลักแล้วต้องใช้ .ToString แต่ .ToString ไม่อาจจะใช้งานได้ทุกกรณีครับ แต่เจ้า (string) หรือการ Boxing กลับใช้งานได้หลากกรณีมากกว่า (เช่นการ convert ที่มี error)
(string)int ไม่ใช่การ boxing ครับ ระวังจะเข้าใจผิดกันใหญ่
การทำ boxing/unboxing คือการเปลี่ยนระหว่าง Value Type และ Reference Type ครับ
แต่ string และ int เป็นคนละ class ที่แตกต่างกันโดยสิ้นเชิง การเปลี่ยน int เป็น string หรือ string เป็น int นั้น
ไม่สามารถทำได้โดยตรงด้วยการ casting(รวมทั้ง boxing/unboxing) แต่จะต้อง convert ตัวข้อมูลเลยครับ
ดังนั้นการเขียนว่า
(string)com.ExecuteScalar();
ExecuteScalar() //ตัวนี้ให้ผลเป็น int ดังนั้นการ cast เป็น string จึง compile error อย่างไม่ต้องสงสัยครับ
การทำ boxing หรือ unboxing จะอยู่ในลักษณะนี้
int? i = 5; //impilcit autoboxing
object o = "string"; //implicit casting
แต่ถ้าตามตัวอย่างนี้
int a = 10;
string s1 = a.ToString();
string s2 = a + ""; //ตัวนี้จะทำ implicit conversion ซึ่งก็คือการไปเรียก ToString อีกทีนั่นละครับ
แตกต่างกันครับ ใช้แทนกันไม่ได้ ระวังจุดนี้
Love = λygh·g(y(y)(h,g), y(y)(h,g))
Code:Love(Love)(I, U) = λgh·g(Love(Love)(h,g), Love(Love)(h,g))(I, U) = λh·I(Love(Love)(h,I), Love(Love)(h,I))(U) = I(Love(Love)(U,I), Love(Love)(U,I)) = I(Love(Love)(U,I)) Love Combinator!!!!
|
|
Rank: มือเทพ Groups: Member
Joined: 3/6/2008 Posts: 196 Location: TH
|
โอเคครับผมผิดเองล่ะครับ
Boxing , Unboxing เป็นการกระทำเพื่อเปลี่ยนเแปลงค่าระหว่าง Object กับ Valuetype จริงๆครับ
แต่จากตัวอย่างข้างบนเป็นการ Casting ครับผมพลาดเองที่ไม่ได้ดูละเอียดตอบไปเลย ต้องขอโทษทุกๆคนด้วยนะครับ
|
|
 Rank: มือสมัครเล่น Groups: Member
Joined: 4/12/2008 Posts: 15
|
นี่คับภาพ warning

|
|
 Rank: มือมืด Groups: Member
Joined: 3/21/2008 Posts: 53 Location: Whenever you code,you've reached my places.
|
หวังว่าคนถามคนเข้ามาอ่านไม่ทันน่ะครับ อิอิ Love = λygh·g(y(y)(h,g), y(y)(h,g))
Code:Love(Love)(I, U) = λgh·g(Love(Love)(h,g), Love(Love)(h,g))(I, U) = λh·I(Love(Love)(h,I), Love(Love)(h,I))(U) = I(Love(Love)(U,I), Love(Love)(U,I)) = I(Love(Love)(U,I)) Love Combinator!!!!
|
|
Rank: มือเทพ Groups: Member
Joined: 3/6/2008 Posts: 196 Location: TH
|
เฉลยเร็วจัง เฉลยเร็วไปทำร้ายผู้ถามนะครับ(ความคิดส่วนตัว) ทำให้เขาขาดความสังเกตุอะไรเล็กๆน้อยๆ
|
|
 Rank: มือสมัครเล่น Groups: Member
Joined: 4/12/2008 Posts: 15
|
อ่านทันครับ ขอบคุณมากครับ
แต่แก้แล้ว ก็ยังติดเหมือนเดิมอ่ะครับ
อืม คือผมเพิ่งหัดทำ ก็เลยลองทำตามในหนังสือครับ
แต่รันไม่ผ่าน เลยงงอ่ะครับ
|
|
Rank: มือเทพ Groups: Member
Joined: 3/6/2008 Posts: 196 Location: TH
|
ลองดูเรื่อง database นะครับเพราะว่า code นั้นไม่ผิดหรอกครับ ที่ผิดคือเรื่อง database
|
|
 Rank: มือสมัครเล่น Groups: Member
Joined: 4/12/2008 Posts: 15
|
ครับ ผมจะลองตรวจสอบดูอีกที
ขอบคุณครับ
|
|
Rank: มือฝึกหัด Groups: Member
Joined: 10/28/2008 Posts: 2 Location: thailand
|
มันผิดตรงบรรทัดก่อนหน้านี้ ตรง sql ที่ select หน่ะ
ต้องเว้นวรรคให้ดีๆนะ ลองดู
|
|
|
Guest |