Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,028

HOME > .NET Framework > Forum > Error แบบนี้ค่ะ มีใครรู้บ้างค่ะควรแก้ยังไง The variable name '@Ts' has already been declared. Variable names must be unique within a query batch or stored procedure.



 

Error แบบนี้ค่ะ มีใครรู้บ้างค่ะควรแก้ยังไง The variable name '@Ts' has already been declared. Variable names must be unique within a query batch or stored procedure.

 



Topic : 055939

Guest




จะinsert ข้อมูลจากGridviewลงฐานข้อมูลค่ะ แต่เก็บข้อมูลแบบวนลูปตามจำนวนแถวที่เลือกค่ะ
แล้วเจอErrorแบบนี้ The variable name '@Ts' has already been declared. Variable names must be unique within a query batch or stored procedure. พอจะเดาได้ว่าไม่insertไม่ได้เพราะค่าในตัวTs ใช่ไหมค่ะ

ถ้า insertแค่ค่าเดียวจะสามารถเก็บได้ตามปกติค่ะ แต่ถ้าเลือกมากกว่า 1 ค่าก็จะErrorแบบนี้ค่ะ
นี้คือโค้ดที่้ขียนค่ะ

protected void btnAssignsubmit_Click(object sender, EventArgs e)
{

DateTime Ts = Convert.ToDateTime(txtAssignDate.Text + " " + txtAssignTime.Text);
txt4.Text = txtAssignDate.Text + " " + txtAssignTime.Text;


int i;
for (i = 0; i <= grdAssignList.Rows.Count - 1; i++)
{
CheckBox chkDel = (CheckBox)grdAssignList.Rows[i].FindControl("chkAssignList");
Label lblID = (Label)grdAssignList.Rows[i].FindControl("lblALisid");

if (chkDel.Checked)
{
con.Open();
String sqlSelect8 = "select Listtime3 from Listhealty where ListId = '" + lblID.Text + "'";
com.CommandText = sqlSelect8;
com.Connection = con;

SqlDataReader dr;
dr = com.ExecuteReader();
dr.Read();

txt3.Text = dr["Listtime3"].ToString();

int Time = Convert.ToInt32(txt3.Text);
DateTime TimeS = Convert.ToDateTime(txt4.Text);


DateTime Result = TimeS.AddMinutes(Time);

con.Close();

String sqlInsert = "insert into Assign(ClinicId, StaffId, ListId, PatientId, AssignDate, AssignTimestart, Timestart, Timefinish, Assigndetail) " + "values('" + Session["sessionAssCli"] + "', '" + Session["sessionAssSta"] + "', '" + lblID.Text + "','"
+ Session["sessionPatientId"] + "', '" + txtAssignDate.Text + "','" + txtAssignTime.Text + "', @Ts, @re, '" + txtAssigndetail.Text + "')";


com.CommandText = sqlInsert;
com.Connection = con;

com.Parameters.Add("@Ts", SqlDbType.DateTime).Value = Ts;
com.Parameters.Add("@re", SqlDbType.DateTime).Value = Result;

con.Open();
com.ExecuteNonQuery();
con.Close();
}

}

ทำยังไงถึงจะให้ข้อมูลที่อยู่ในตัวแปรที่error สามารถบันทึกข้อมูลรอบที่2ได้ค่ะ
รบกวนท่านผู้รู้ช่วยหน่อยนะค่ะ รีบมากกกเลยค่ะ



Tag : .NET, Ms SQL Server 2008, Web (ASP.NET), C#, VS 2008 (.NET 3.x)







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2011-02-12 15:32:24 By : eieio View : 1951 Reply : 8
 

 

No. 1

Guest


om.CommandText = sqlInsert;
com.Connection = con;

if ( com.Parameters.Count > 0 ) com.Parameters.Clear() ;

com.Parameters.Add("@Ts", SqlDbType.DateTime).Value = Ts;
com.Parameters.Add("@re", SqlDbType.DateTime).Value = Result;






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-02-12 18:31:17 By : สาวเอ๋อ (ก้อคนมานเอ๋อ)
 


 

No. 2

Guest


ทำได้แล้วค่ะ
ขอบคุณ สาวเอ๋อ (ก้อคนมานเอ๋อ) มากๆๆค่ะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-02-12 19:53:40 By : eieio
 

 

No. 3

Guest


ขอถามต่อได้ไหมค่ะ
ถ้าเกิดว่าตอนเก็บข้อมูลรอบที่2 ต้องการเอาค่าของResultเก็บค่าแทนตัวแปรTS
ต้องทำยังไงค่ะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-02-12 20:09:35 By : eieio
 


 

No. 7



โพสกระทู้ ( 1,603 )
บทความ ( 1 )



สถานะออฟไลน์


Code (C#)
    protected void btnAssignsubmit_Click(object sender, EventArgs e)
    {
        DateTime Ts = Convert.ToDateTime(txtAssignDate.Text + " " + txtAssignTime.Text);
        txt4.Text = txtAssignDate.Text + " " + txtAssignTime.Text;

        for (int i = 0; i <= grdAssignList.Rows.Count - 1; i++)
        {
            CheckBox chkDel = (CheckBox)grdAssignList.Rows[i].FindControl("chkAssignList");
            Label lblID = (Label)grdAssignList.Rows[i].FindControl("lblALisid");

            if (chkDel.Checked)
            {
                con.Open();
                String sqlSelect8 = "select Listtime3 from Listhealty where ListId = '" + lblID.Text + "'";
                com.CommandText = sqlSelect8;
                com.Connection = con;

                SqlDataReader dr;
                dr = com.ExecuteReader();
                dr.Read();

                txt3.Text = dr["Listtime3"].ToString();

                int Time = Convert.ToInt32(txt3.Text);
                DateTime TimeS = Convert.ToDateTime(txt4.Text);
                DateTime Result = TimeS.AddMinutes(Time);

                switch (i)
                {
                    case 1:
                        // จะทำอะไร ก้อใส่สะตรงนี้ค่ะ
                        break;
                }
                con.Close();

                String sqlInsert = "insert into Assign(ClinicId, StaffId, ListId, PatientId, AssignDate, AssignTimestart, Timestart, Timefinish, Assigndetail) " + "values('" + Session["sessionAssCli"] + "', '" + Session["sessionAssSta"] + "', '" + lblID.Text + "','"
                    + Session["sessionPatientId"] + "', '" + txtAssignDate.Text + "','" + txtAssignTime.Text + "', @Ts, @re, '" + txtAssigndetail.Text + "')";


                com.CommandText = sqlInsert;
                com.Connection = con;

                com.Parameters.Add("@Ts", SqlDbType.DateTime).Value = Ts;
                com.Parameters.Add("@re", SqlDbType.DateTime).Value = Result;

                con.Open();
                com.ExecuteNonQuery();
                com.Parameters.Clear();
                con.Close();
            }
        }
    }
}



กรุณาใส่ tag ภาษา C# ด้วยนะคะจะได้อ่านง่าย
ครั้งนี้ครั้งแรกไม่ว่ากัน เที่ยวหน้าถ้าไม่ใส่มา ก็รอพี่ๆเพื่อนๆคนอื่นมาตอบให้ละกันค่ะ


ประวัติการแก้ไข
2011-02-12 23:32:45
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-02-12 21:05:25 By : blurEyes
 


 

No. 8

Guest


ขอโทษค่ะ คราวหลังจะใส่ทุกอันเลยค่ะ
ลองทำตามโค้ดที่ให้มาแล้วค่ะ
แต่ว่าทำไม่ได้ค่ะ ค่ามันไม่ยอมเปลี่ยนค่ะ

พอจะมีวิธีอื่นอีกบ้างไหมค่ะ
ขอบคุณค่ะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-02-12 21:19:11 By : eieio
 


 

No. 9



โพสกระทู้ ( 1,603 )
บทความ ( 1 )



สถานะออฟไลน์


บรรทัดที่ 31 จาก code น่ะค่ะ คุณอยากให้มันสลับค่าอะไรก้อใส่เข้าไป
คือจาก
Quote:
ถ้าเกิดว่าตอนเก็บข้อมูลรอบที่2 ต้องการเอาค่าของResultเก็บค่าแทนตัวแปรTS ต้องทำยังไงค่ะ

ไม่เข้าใจว่าคุณหมายถึงอะไร ถ้าคุณอยากให้มันเป็นยังไงก็เอาใส่ตรงนั้นแหละค่ะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-02-12 23:34:22 By : blurEyes
 


 

No. 10

Guest


ขออธิบายเพิ่มเติมค่ะ คือว่าเก็บข้อมูลการรักษาของคนไข้ค่ะ
โดยที่คนไข้สามารถเลือกได้ว่าจะรักษากี่รายการใน 1 ครั้ง(ของการนัด)
และแต่ละรายการจะมีเวลาที่ใช้ในการรักษาอยู่ด้วยค่ะ ซึ่งการนัดแต่ละรายการจะเก็บเวลาเริ่มต้น คือเวลาที่คนไข้เลือกค่ะ
จากนั้นก็เอา เวลาเริ่มต้น+เวลาที่ใช้ในการรักษา= เวลาเสร็จสิ้น

ถ้าคนไข้ทำการเลือก 2 รายการ ข้อมูลอื่นๆจะเก็บเหมือนเดิมค่ะ ยกเว้น รายการรักษา
เวลาเริ่มต้นซึ่งต้องเอาเวลาเสร็จสิ้นจากรายการที่แล้วมาเป็นเวลาเริ่มต้นของรายการที่2นี้ค่ะ
ส่วนที่เหลือก็คำนวณเหมือนเดิม ก็จะได้ข้อมูลออกใา2ชุด แต่เป็นการนัดภายในครั้งเดียวค่ะ
ประมาณนี้ค่ะ

ขอบคุณมากค่ะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-02-13 12:46:24 By : eieio
 


 

No. 11

Guest


ลองเขียนโค้ดตามที่ให้มาแล้วค่ะ
แต่ไม่ได้ผลอย่างที่ต้องการค่ะ

คือพอเลือกรายการแล้วมันจะไปทำใน caseที่กำหนดไว้ใช่ไหมค่ะ
แต่ที่ต้องการมันไม่ใช่แบบนี้อะค่ะ

จะเป็นตามที่อธิบายไว้ข้างบนค่ะ
รบกวนท่านผู้รู้ทุกท่านช่วยหน่อยนะค่ะ
ยังไม่ถึงไหนเลย
ขอบคุณค่ะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-02-13 16:20:41 By : eieio
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : Error แบบนี้ค่ะ มีใครรู้บ้างค่ะควรแก้ยังไง The variable name '@Ts' has already been declared. Variable names must be unique within a query batch or stored procedure.
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 03
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่