.NET Logo
Welcome Guest Search | Active Topics | Members | Log In | Register

ถามเรื่อง Warning CurrentName = (string)com.ExecuteScalar(); Options · View
iceeu
Posted: Saturday, April 12, 2008 9:32:03 AM

Rank: มือสมัครเล่น
Groups: Member

Joined: 4/12/2008
Posts: 15

ผมทำหน้าเว็บ Login.aspx 

รันได้นะคับ แต่พอกรอกข้อมูล username กับ password ก็ติด 

Warning CurrentName = (string)com.ExecuteScalar();

Incorrect syntax near '='.

ไม่ทราบว่าเป็นเพราะสาเหตุอะไร

 

 

dekzerza
Posted: Sunday, April 13, 2008 3:27:56 PM
Rank: มือสมัครเล่น
Groups: Member

Joined: 3/4/2008
Posts: 12
Location: thai
ไม่แน่ใจนะครับ น่าจะเป็นตรงที่ if ปะคับ น่าจะเป็น == เวลาเปลี่ยนเทียบ ดันไปใช้ = เฉยป่าวเอ่ย
iceeu
Posted: Sunday, April 13, 2008 7:53:46 PM

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");
        }

dekzerza
Posted: Tuesday, April 15, 2008 3:15:36 PM
Rank: มือสมัครเล่น
Groups: Member

Joined: 3/4/2008
Posts: 12
Location: thai

CurrentName = (string)com.ExecuteScalar();  <<== มันติดตรงนี้คับ

จะConvert มันใช่ม่ะคับ

ใช้เป็นงี้ได้ม่ะคับ

CurrentName = com.ExecuteScalar().ToString();

iceeu
Posted: Tuesday, April 15, 2008 3:40:46 PM

Rank: มือสมัครเล่น
Groups: Member

Joined: 4/12/2008
Posts: 15

ยังไม่ได้เลยคับ ผมลองทำแล้ว

ติดตรง

CurrentName = com.ExecuteScalar().ToString();

 

dekzerza
Posted: Tuesday, April 15, 2008 7:16:39 PM
Rank: มือสมัครเล่น
Groups: Member

Joined: 3/4/2008
Posts: 12
Location: thai

.ExecuteScalar() สงสัยต้องดู method นี้ แล้วแหละคับนะ

พวก อาจาน กับเซียนๆ ไม่อยุ่ด้วย ผมก็ไม่ค่อยเก่งนะ - -"

 

digitake
Posted: Wednesday, April 16, 2008 1:50:41 PM

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!!!!

paedotnet
Posted: Wednesday, April 16, 2008 3:32:07 PM

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]
digitake
Posted: Wednesday, April 16, 2008 3:36:11 PM

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!!!!

mrxc
Posted: Wednesday, April 16, 2008 9:26:26 PM
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)

iceeu
Posted: Wednesday, April 16, 2008 10:19:51 PM

Rank: มือสมัครเล่น
Groups: Member

Joined: 4/12/2008
Posts: 15

warning ตรง CurrentName = (string)com.ExecuteScalar(); 

ว่า Incorrect syntax near '='. คับ

mrxc
Posted: Wednesday, April 16, 2008 11:42:00 PM
Rank: มือเทพ
Groups: Member

Joined: 3/6/2008
Posts: 196
Location: TH

แล้วผลของ Warn เป็นยังไงบ้างครับ แค่โชว์หรือทำงานผิดพลาด หรือทำงานไม่ได้ครับ

iceeu
Posted: Wednesday, April 16, 2008 11:45:43 PM

Rank: มือสมัครเล่น
Groups: Member

Joined: 4/12/2008
Posts: 15

หน้า login ก็รันได้คับ

แต่พอกดปุ่ม login ก็ติด warning เลยคับ

ไม่ไปหน้าอื่นเลยคับ

mrxc
Posted: Thursday, April 17, 2008 1:00:05 AM
Rank: มือเทพ
Groups: Member

Joined: 3/6/2008
Posts: 196
Location: TH

ขอ code ที่เกี่ยวข้องกับปัญหาทั้งหมดได้ไหมครับ ถ้าไม่สดวก post ก็ไปฝากไว้แล้วเอา link มาก็ได้ครับ

iceeu
Posted: Thursday, April 17, 2008 1:12:48 AM

Rank: มือสมัครเล่น
Groups: Member

Joined: 4/12/2008
Posts: 15

นี่เป็น link นะคับ

http://www.uploadtoday.com/download/?d7cae0d2b287f2838078805442442896

ก็เป็นไฟล์ตามตัวอย่างหนังสืออ่ะคับ

 

 

mrxc
Posted: Thursday, April 17, 2008 4:25:43 AM
Rank: มือเทพ
Groups: Member

Joined: 3/6/2008
Posts: 196
Location: TH

ดูจาก code แล้วผมว่ามันไม่น่าจะมาจากตรงนี้หรอกครับ ลองดูก่อนหน้านี้ดูครับ

ก่อนหน้านี้ซัก 3-5 บรรทัดครับ ไม่แน่ใจนะครับว่าไช่ 100% แต่น่าสงสัยครับ

 

หรือไม่ก็เซฟรูป warn มาให้ดูหน่อยครับ แต่เท่าที่ดู(รันไม่ได้เพราะว่า code ที่ให้มาไม่สมบูรณ์)

digitake
Posted: Thursday, April 17, 2008 8:46:16 AM

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!!!!

mrxc
Posted: Thursday, April 17, 2008 2:01:08 PM
Rank: มือเทพ
Groups: Member

Joined: 3/6/2008
Posts: 196
Location: TH

โอเคครับผมผิดเองล่ะครับ

 

Boxing , Unboxing เป็นการกระทำเพื่อเปลี่ยนเแปลงค่าระหว่าง Object กับ Valuetype จริงๆครับ

แต่จากตัวอย่างข้างบนเป็นการ Casting ครับผมพลาดเองที่ไม่ได้ดูละเอียดตอบไปเลย ต้องขอโทษทุกๆคนด้วยนะครับ

iceeu
Posted: Thursday, April 17, 2008 2:26:53 PM

Rank: มือสมัครเล่น
Groups: Member

Joined: 4/12/2008
Posts: 15
นี่คับภาพ warning

 

digitake
Posted: Thursday, April 17, 2008 4:07:06 PM

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!!!!

mrxc
Posted: Thursday, April 17, 2008 5:20:56 PM
Rank: มือเทพ
Groups: Member

Joined: 3/6/2008
Posts: 196
Location: TH

เฉลยเร็วจัง เฉลยเร็วไปทำร้ายผู้ถามนะครับ(ความคิดส่วนตัว) ทำให้เขาขาดความสังเกตุอะไรเล็กๆน้อยๆ

iceeu
Posted: Thursday, April 17, 2008 5:48:53 PM

Rank: มือสมัครเล่น
Groups: Member

Joined: 4/12/2008
Posts: 15

อ่านทันครับ ขอบคุณมากครับ

แต่แก้แล้ว ก็ยังติดเหมือนเดิมอ่ะครับ

อืม คือผมเพิ่งหัดทำ ก็เลยลองทำตามในหนังสือครับ

แต่รันไม่ผ่าน เลยงงอ่ะครับ

 

 

 

mrxc
Posted: Thursday, April 17, 2008 7:16:00 PM
Rank: มือเทพ
Groups: Member

Joined: 3/6/2008
Posts: 196
Location: TH

ลองดูเรื่อง database นะครับเพราะว่า code นั้นไม่ผิดหรอกครับ ที่ผิดคือเรื่อง database

iceeu
Posted: Thursday, April 17, 2008 10:11:40 PM

Rank: มือสมัครเล่น
Groups: Member

Joined: 4/12/2008
Posts: 15

ครับ ผมจะลองตรวจสอบดูอีกที

ขอบคุณครับ

peposo
Posted: Tuesday, October 28, 2008 8:51:24 AM
Rank: มือฝึกหัด
Groups: Member

Joined: 10/28/2008
Posts: 2
Location: thailand

มันผิดตรงบรรทัดก่อนหน้านี้ ตรง sql ที่ select หน่ะ

ต้องเว้นวรรคให้ดีๆนะ ลองดู

Users browsing this topic
Guest


Forum Jump
You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.

Main Forum RSS : RSS

YAFVision Theme Created by Jaben Cargman (Tiny Gecko)
Powered by Yet Another Forum.net version 1.9.1.8 (NET v2.0) - 3/29/2008
Copyright © 2003-2008 Yet Another Forum.net. All rights reserved.


Sponsored by