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,036

HOME > .NET Framework > Forum > Web(ASP.Net C#) นำค่าจาก textbox ไปแสดงใน label(item template)ครับ ช่วยหน่อยนะครับ!!! ขอบคุณล่วงหน้าครับพี่ๆ



 

Web(ASP.Net C#) นำค่าจาก textbox ไปแสดงใน label(item template)ครับ ช่วยหน่อยนะครับ!!! ขอบคุณล่วงหน้าครับพี่ๆ

 



Topic : 087247



โพสกระทู้ ( 33 )
บทความ ( 0 )



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




ผมเขียน Web(ASP.Net C#)...
คือพอหลังจากอัพโหลดแล้วได้ค่าตัวเลขโชว์ใน TextBox แล้วครับ(ผมทำได้แล้ว) แต่ต้องการนำค่านั้น ไปใส่(แสดง)ใน label ที่วางไว้ใน Item template แล้วนำค่า label บันทึกลง Database รบกวนช่วยหน่อยนะครับ ไม่รู้จะทำยังไงครับ(เพิ่งหัดเขียนอะครับ) ขอบคุณล่วงหน้ามากครับ


ภาพประกอบครับ



Tag : .NET, Web (ASP.NET), VS 2010 (.NET 4.x), C, Windows







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2012-11-26 11:43:21 By : SponG_Gy View : 6532 Reply : 29
 

 

No. 1



โพสกระทู้ ( 88 )
บทความ ( 0 )



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


จังหวะที่เราวนลูปอ่านค่าใน excel ก็ให้ยัดค่า Excel no ไปด้วยครับ

จากนั้นค่อย Bind Grid ครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-11-26 17:35:55 By : Niratiam
 


 

No. 2



โพสกระทู้ ( 33 )
บทความ ( 0 )



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


ช่วยแนะนำหน่อยได้ไมครับผมยังไม่ค่อยเข้าใจเท่าไรว่าต้องแทรก Excel No. ลงไปตรงไหน ขอบคุณครับ
จริงๆผมนำเข้าข้อมูล Excel ลงในDBได้แล้ว เพียงแต่อยากให้มันได้เลข Excel No. ลงไปทุกๆแถวของการนำเข้า DB (เพราะเลข Excel No. จะใช้เวลาที่ค้นหา เปรียบเสมือนรหัสของการ อัพโหลดแต่ละคนอ่ะครับ) แล้วผมค่อยดึงมาโชว์ที่ Gridview ทีหลังก็ได้ แต่ผมทำไม่เป็นอะไร งงครับ เลยจะให้ดึงลง Grid ก่อนแล้วค่อยนำเข้า DB แบบซื่อๆ รบกวนช่วยเหลือแนะนำหน่อยนะครับ ขอบคุณอีกครั้งครับ

Code (C#)
protected void  Button1_Click(object sender, EventArgs e)
    {
        if (FileUpload1.HasFile)
        {
            string FileName = Path.GetFileName(FileUpload1.PostedFile.FileName);
            string Extension = Path.GetExtension(FileUpload1.PostedFile.FileName);
            string FolderPath2 = ConfigurationManager.AppSettings["FolderPath2"];
            string FilePath = Server.MapPath(FolderPath2 + FileName);
            FileUpload1.SaveAs(FilePath);
            Label1.Text = "File Saved to: " + FilePath;
            Import_To_Grid(FilePath, Extension, RadioButtonList1.SelectedItem.Text);
        }
        //*** ส่วน Auto Gen...to TextBox ***//
        int r;
        try
        {
            SqlCommand cmd = new SqlCommand("Select max(MasterID) from Masterkey", objConn);
            SqlDataReader dr = cmd.ExecuteReader();

            if (dr.Read())
            {
                string d = dr[0].ToString();
                if (d == "")
                {

                    TextBox1.Text = "1";

                }
                else
                {

                    r = Convert.ToInt32(dr[0].ToString());
                    r = r + 1;
                    TextBox1.Text = r.ToString();
                }
            }
            objConn.Close();
            objConn.Open();

            cmd.CommandText = "insert Masterkey values('" + TextBox1.Text + "')";
            cmd.ExecuteNonQuery();
        }
        catch (Exception ex)
        {
            Response.Write("<script>alert(" + ex.Message + ")</script>");
        }
        finally
        {
            objConn.Close();
        }
    }
    private void Import_To_Grid(string FilePath, string Extension, string isHDR)
    {
        string conStr = "";
        switch (Extension)
        {
            case ".xls": //Excel 97-03
                conStr = ConfigurationManager.ConnectionStrings["Excel03ConString"]
                         .ConnectionString;
                break;
            case ".xlsx": //Excel 07
                conStr = ConfigurationManager.ConnectionStrings["Excel07ConString"]
                          .ConnectionString;
                break;
        }
        conStr = String.Format(conStr, FilePath, isHDR);
        OleDbConnection connExcel = new OleDbConnection(conStr);
        OleDbCommand cmdExcel = new OleDbCommand();
        OleDbDataAdapter oda = new OleDbDataAdapter();
        DataTable dt = new DataTable();
        cmdExcel.Connection = connExcel;

        //Get the name of First Sheet
        connExcel.Open();
        DataTable dtExcelSchema;
        dtExcelSchema = connExcel.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
        string SheetName = dtExcelSchema.Rows[0]["TABLE_NAME"].ToString();
        connExcel.Close();

        //Read Data from First Sheet
        connExcel.Open();
        cmdExcel.CommandText = "SELECT * From [" + SheetName + "]";
        oda.SelectCommand = cmdExcel;
        oda.Fill(dt);
        connExcel.Close();

        //Bind Data to GridView
        GridView1.Caption = Path.GetFileName(FilePath);
        GridView1.DataSource = dt;
        GridView1.DataBind();
    }
    protected void PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        string FolderPath = ConfigurationManager.AppSettings["FolderPath"];
        string FileName = GridView1.Caption;
        string Extension = Path.GetExtension(FileName);
        string FilePath = Server.MapPath(FolderPath + FileName);

        Import_To_Grid(FilePath, Extension, RadioButtonList1.SelectedItem.Text);
        GridView1.PageIndex = e.NewPageIndex;
        GridView1.DataBind();
    }
    
    protected void Button2_Click(object sender, EventArgs e)
    {
        SqlTransaction tr = objConn.BeginTransaction();
        SqlCommand cmd = objConn.CreateCommand();

        try
        {
            cmd.CommandType = CommandType.Text;
            cmd.Transaction = tr;

            string username;
            string password;
            string fname;
            string lname;

            //Loop เอาค่าใน GridView Insert ลง Base
            for (int i = 0; i <= GridView1.Rows.Count - 1; i++)
            {
                username = GridView1.Rows[i].Cells[0].Text.Trim();
                password = GridView1.Rows[i].Cells[1].Text.Trim();
                fname = GridView1.Rows[i].Cells[2].Text.Trim();
                lname = GridView1.Rows[i].Cells[3].Text.Trim();
                cmd.CommandText = "Insert Into Sheet1 (username,password,fname,lname) " +
                   " values ('" + username + "','" + password + "','" + fname + "','" + lname + "')";
                cmd.ExecuteNonQuery();

            }

            tr.Commit();

            Label2.Text = "บันทึกข้อมูลเรียบร้อย";

        }
        catch (SqlException ex)
        {
            tr.Rollback();
            Label2.Text = "Error - TRANSACTION ROLLED BACK\n" + ex.Message;
        }
        catch (Exception ex)
        {
            tr.Rollback();
            Label2.Text = "System Error\n" + ex.Message;
        }
        finally
        {
            objConn.Close();
            tr.Dispose();
        }

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-11-27 08:56:21 By : SponG_Gy
 

 

No. 3



โพสกระทู้ ( 88 )
บทความ ( 0 )



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


Code (C#)
//Bind Data to GridView

DataTable dt2 = new DataTable ();
DataRow dr2 = new DataRow();

foreach(DataRow dr in dt.Rows) // วนดึงค่าจาก dt ที่คุณ Fill ไว้แล้วครับ
{

    dr2 = dt2.newRow();

    dr2[0] = txtExcelNo.Text; // ตรงนี้เก็บค่า Excel No ครับ
    dr2[1] = dr[0].ToString();
    dr2[2] = dr[1].ToString();
    dr2[3] = dr[2].ToString();
    dr2[4] = dr[3].ToString();

    dt2.Rows.Add(dr2);
}

GridView1.DataSource = dt2;
GridView1.DataBind();


ลองดูนะครับ


ประวัติการแก้ไข
2012-11-27 09:48:18
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-11-27 09:36:22 By : Niratiam
 


 

No. 4



โพสกระทู้ ( 33 )
บทความ ( 0 )



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


ผมลองนำไปใส่ตรง //Bind Data to GridView แล้วครับแต่ Error

dr2[0] = TextBox1.Text; //Errorแบบนี้ตอนที่คลิก Upload ครับ "Cannot find column 0."

หรือว่าผมใส่ผิดยังไงช่วยทีนะครับ ขอบคุณครับคุณ Niratiam


ประวัติการแก้ไข
2012-11-27 10:29:42
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-11-27 10:13:34 By : SponG_Gy
 


 

No. 5



โพสกระทู้ ( 88 )
บทความ ( 0 )



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


Code (C#)
//Bind Data to GridView

DataTable dt2 = new DataTable ();

dt2.Columns.Add("excelno", typeof(string));
dt2.Columns.Add("username", typeof(string));
dt2.Columns.Add("password", typeof(string));
dt2.Columns.Add("fname", typeof(string));
dt2.Columns.Add("lname", typeof(string));

foreach(DataRow dr in dt.Rows) // วนดึงค่าจาก dt ที่คุณ Fill ไว้แล้วครับ
{

    DataRow dr2 = dt2.newRow();

    dr2["excelno"] = txtExcelNo.Text; // ตรงนี้เก็บค่า Excel No ครับ
    dr2["username"] = dr[0].ToString();
    dr2["password"] = dr[1].ToString();
    dr2[fname] = dr[2].ToString();
    dr2[lname] = dr[3].ToString();

    dt2.Rows.Add(dr2);
}

GridView1.DataSource = dt2;
GridView1.DataBind();


งั้นลองดูแบบนี้ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-11-27 10:41:28 By : Niratiam
 


 

No. 6



โพสกระทู้ ( 33 )
บทความ ( 0 )



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


ได้แล้วครับ แต่แปลกมากใน Gridview ไม่เห็นตัวเลขขึ้น แต่พอผมลองแก้ปุ่ม Save To DB แล้วนำเข้า Base กลับมีเลข

ไม่ขึ้น excelno ครับ

ยังไงก็ขอบคุณมากมากนะครับ คุณ Niratiam ผมทำไม่ได้มาหลายวัน ขอบคุณครับ ;)


ประวัติการแก้ไข
2012-11-27 11:17:00
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-11-27 11:14:26 By : SponG_Gy
 


 

No. 7



โพสกระทู้ ( 88 )
บทความ ( 0 )



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


ตอบความคิดเห็นที่ : 6 เขียนโดย : SponG_Gy เมื่อวันที่ 2012-11-27 11:14:26
รายละเอียดของการตอบ ::
ยินดีด้วยครับ ส่วนตัวเลขที่ไม่ขึ้น อาจจะต้องดูหลายส่วนครับ

อาจจะเป็นเพราะ DataType ใน Excel กับ Table ไม่ตรงกัน

หรืออาจจะลืม Binding Column ในหน้า Design ครับ

ยินดีด้วยอีกครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-11-27 11:22:58 By : Niratiam
 


 

No. 8



โพสกระทู้ ( 33 )
บทความ ( 0 )



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


ขอบคุณมากนะครับ คุณ Niratiam
ผมก็ยังหาสาเหตุที่ excelno ไม่โชว์ใน Gridview ไม่ได้อยู่ดี...

แต่ตอนนี้ผมสร้างคอลัม id ขึ้นมาเพิ่มเพื่อให้ Gridview Generate ลำดับเลขขึ้นมาตามจำนวนแถว
เช่น ไฟล์ Excel มี 10 // คอลัมม์ id ก็จะขึ้นเป็น 1-10 แล้วนำเข้า DB อันนี้ผมทำได้ครับ โดยผมสร้าง Label ใน Item Template แล้ว Code-Behind ผมใช้
Code (C#)
int i = 1;
    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            Label lblid = (Label)e.Row.FindControl("lblid ");
            lblid.Text = i.ToString();
            i++;
        }
    }

แต่ปัญหาคือว่า ถ้าครั้งต่อๆไปมีการอัพโหลดอีก เลขมันก็จะเริ่มที่ 1 เสมอ จะมีวิธีที่จะดึงเลขสูงสุดของฐานข้อมูล(ตาราง Detail ในคอลัมม์ id)มาเป็นเลขเริ่มต้องบ้างไมครับ ถ้าคุณทราบก็รบกวนช่วยผมหน่อยนะครับ แต่ถ้ารบกวนเกินไปก็ไม่เป็นไรครับ ยังไงก็ต้องขอบคุณมากนะครับสำหรับคำแนะนำดีดีก่อนหน้านี้...ขอบคุณครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-11-27 15:37:36 By : SponG_Gy
 


 

No. 9



โพสกระทู้ ( 88 )
บทความ ( 0 )



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


ขอดู code กับ หน้าผลลัพธ์ หน่อยครับ พอดีอ่านแล้วงงๆ ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-11-27 15:48:46 By : Niratiam
 


 

No. 10



โพสกระทู้ ( 33 )
บทความ ( 0 )



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


Code (C#)
    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            Label lblid = (Label)e.Row.FindControl("lblid");
            lblid.Text = ((GridView1.PageIndex * GridView1.PageSize) + e.Row.RowIndex + 1).ToString();
        }
    }


id อะครับ

คือ id ตอนนี้ล่าสุดเป็น 3 แต่อัพโหลดใหม่อยากให้ขึ้นเป็น 4,5,6,...ไม่งั้น id ก็จะไม่เรียงอะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-11-27 16:26:31 By : SponG_Gy
 


 

No. 11



โพสกระทู้ ( 88 )
บทความ ( 0 )



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


Code (C#)
private void chkLast()
    {
        GridViewRow row = GridView1.Rows[GridView1.Rows.Count - 1];

        Label lblid = (Label)row.FindControl("lblid");

        i = Convert.ToInt32(lblid.Text) + 1;
    }


อันนี้ลองไป Check last row อ่ะครับ แล้วเราจะได้ค่า id + 1 ครับ


ประวัติการแก้ไข
2012-11-27 16:57:39
2012-11-27 16:58:23
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-11-27 16:57:01 By : Niratiam
 


 

No. 12



โพสกระทู้ ( 33 )
บทความ ( 0 )



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


อ่อ คือพอได้ id 1,2,3 แล้วผมก็จะ นำเข้า db ms sql อะครับ แล้วอยากให้เวลา อัพโหลดครั้งต่อไปคือ run page ใหม่ แล้วอัพโหลด จะได้ id 4,5,6 พอครั้งต่อไปที่ run page ใหม่ก็จะเป็น 7,8,9 อันนี้ต้องไป select max จาก db ก่อนรึปล่าวครับ แล้วค่อยวางลง คอลัมม์ id รบกวนแนะนำด้วยครับ ขอบคุณครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-11-27 17:10:59 By : SponG_Gy
 


 

No. 13



โพสกระทู้ ( 88 )
บทความ ( 0 )



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


อ่อ ถ้านำเข้า db แล้ว ก็ select max ขึ้นมาเลยก็ได้ครับ ง่ายสุดเลยครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-11-27 17:19:30 By : Niratiam
 


 

No. 14



โพสกระทู้ ( 33 )
บทความ ( 0 )



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


คุณ Niratiam จากที่ผมทำไว้อะครับ ตอนนี้มีปัญหาอีกแล้วครับ
คือผมต้องการให้เลือก checkbox ก่อนเข้า database อะครับ ผมจะต้องเขียนโค๊ดยังไงครับ พอจะแนะนำได้ไมครับ ตอนนี้ผมวาง template ใน gridview แล้วใส่ checkbox ไว้ แต่ไม่รู้ว่าจะต้องเขียนคำสั่งยังไง โดยให้แถวที่่เลือกถูก check แล้วนำเข้าแต่แถวที่ถูกเลือกครับ ช่วยชี้แนะหน่อยนะครับ ขอบคุณมากครับ

checkbox

จากภาพผมก็จะเลือก 2 แถว แล้วพอกด ปุ่ม Save to db แล้วจะนำเข้าเพียงแถวที่ผมเลือกจาก grid อะครับ ยังไงรบกวนคุณ Niratiam หน่อยนะครับ ผมพยายามลองทำมาหลายวันยังไม่ได้ ขอบคุณมากครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-11-30 10:36:37 By : SponG_Gy
 


 

No. 15



โพสกระทู้ ( 88 )
บทความ ( 0 )



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


ผมใช้วิธีแบบนี้ครับ เอาไป check ใน event Save To DB ครับ

Code (C#)
int rowCount = GridView.Rows.Count; // นับ Row ใน GridView ครับ

        for (int i = 0; i < rowCount; i++)
        {
            GridViewRow row = GridView.Rows[i];

            CheckBox cbselect = (CheckBox)row.FindControl("cbSelect");
            Label lblUsername = (Label)row.FindControl("lblUsername ");
            Label lblPassword= (Label)row.FindControl("lblPassword");
            Label lblFname= (Label)row.FindControl("lblFName");
            Label lblLName= (Label)row.FindControl("lblLName");

            if (cbselect.Checked == true) // check แถวที่ select ตรงนี้ครับ
            {
                เอาค่าที่ได้มา insert ที่นี่ครับ
            }
        }


ลองประยุกต์ใช้ดูนะครับ


ประวัติการแก้ไข
2012-11-30 11:36:53
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-11-30 11:35:21 By : Niratiam
 


 

No. 16



โพสกระทู้ ( 33 )
บทความ ( 0 )



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


ขอบคุณครับ ผมลองดูแล้ว ไม่ error อะไร แต่ แถวที่เลือก ไม่เข้า DB เลยอะครับ ผมทำส่วนไหนผิดรึปล่าวครับ

Code (C#)
//ปุ่ม Save to db
    protected void Button2_Click(object sender, EventArgs e)
    {
        SqlTransaction tr = objConn.BeginTransaction();
        SqlCommand cmd = objConn.CreateCommand();

        try
        {
            cmd.CommandType = CommandType.Text;
            cmd.Transaction = tr;
            
            int rowCount = GridView1.Rows.Count; // นับ Row ใน GridView ครับ

        for (int j = 0; j < rowCount; j++)
        {
            GridViewRow row = GridView1.Rows[j];

            CheckBox cbselect = (CheckBox)row.FindControl("cbSelect");
            Label lblMasterID = (Label)row.FindControl("lblMasterID");
            Label lblUsername = (Label)row.FindControl("lblUsername ");
            Label lblPassword= (Label)row.FindControl("lblPassword");
            Label lblFname= (Label)row.FindControl("lblFName");
            Label lblLName= (Label)row.FindControl("lblLName");

            if (cbselect.Checked == true) // check แถวที่ select ตรงนี้ครับ
            {
                //ส่วนการ Insert เข้า DB
                for (int i = 0; i <= GridView1.Rows.Count - 1; i++)
                {
                   string MasterID = GridView1.Rows[i].Cells[1].Text.Trim();
                   string username = GridView1.Rows[i].Cells[2].Text.Trim();
                   string password = GridView1.Rows[i].Cells[3].Text.Trim();
                   string fname = GridView1.Rows[i].Cells[4].Text.Trim();
                   string lname = GridView1.Rows[i].Cells[5].Text.Trim();

                    cmd.CommandText = "Insert Into Sheet1(MasterID,username,password,fname,lname) " +
                       " values ('" + TextBox1.Text + "','" + username + "','" + password + "','" + fname + "','" + lname + "')";
            }
        }
cmd.ExecuteNonQuery();
            }

            tr.Commit();

            Label2.Text = "บันทึกข้อมูลเรียบร้อย";

        }
        catch (SqlException ex)
        {
            tr.Rollback();
           Label2.Text = "Error - TRANSACTION ROLLED BACK\n" + ex.Message;
        }
        catch (Exception ex)
        {
            tr.Rollback();
            Label2.Text = "System Error\n" + ex.Message;
        }
        finally
        {
            objConn.Close();
            tr.Dispose();
        }

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-11-30 11:59:34 By : SponG_Gy
 


 

No. 17



โพสกระทู้ ( 88 )
บทความ ( 0 )



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


เอาค่า Label ไปใส่แทนได้เลยครับ

Code (C#)
if (cbselect.Checked == true) // check แถวที่ select ตรงนี้ครับ
            {
                //ส่วนการ Insert เข้า DB
                for (int i = 0; i <= GridView1.Rows.Count - 1; i++)
                {
                    cmd.CommandText = "Insert Into Sheet1(MasterID,username,password,fname,lname) " +
                       " values ('" + lblMasterID.Text.Trim() + "','" + lblUsername.Text.Trim() + "','" + lblPassword.Text.Trim() + "','" + lblFname.Text.Trim() + "','" + lblLName.Text.Trim() + "')";
            }
        }

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-11-30 13:03:18 By : Niratiam
 


 

No. 18



โพสกระทู้ ( 33 )
บทความ ( 0 )



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


ผมลองแล้วนะครับคุณ Niratiam ก็ยังไม่ได้อะครับ รันได้ไม่มี Error แต่ check เลือกแถว ไม่เข้า DB เลยครับ ไม่ทราบผมทำผิดส่วนไหนรึเปล่าครับ ขอบคุณครับ

Code (C#)
//ปุ่ม Save to db
    protected void Button2_Click(object sender, EventArgs e)
    {
        SqlTransaction tr = objConn.BeginTransaction();
        SqlCommand cmd = objConn.CreateCommand();

        try
        {
            cmd.CommandType = CommandType.Text;
            cmd.Transaction = tr;

            int rowCount = GridView1.Rows.Count; // นับ Row ใน GridView ครับ

            for (int j = 0; j < rowCount; j++)
            {
                GridViewRow row = GridView1.Rows[j];

                CheckBox cbselect = (CheckBox)row.FindControl("cbselect");
                Label lblMasterID = (Label)row.FindControl("lblMasterID");
                Label lblusername = (Label)row.FindControl("lblusername ");
                Label lblpassword = (Label)row.FindControl("lblpassword");
                Label lblfname = (Label)row.FindControl("lblfname");
                Label lbllname = (Label)row.FindControl("lbllname");

                if (cbselect.Checked == true) // check แถวที่ select ตรงนี้ครับ
                {
                    //ส่วนการ Insert เข้า DB
                    for (int i = 0; i <= GridView1.Rows.Count - 1; i++)
                    {
                        cmd.CommandText = "Insert Into Sheet1(MasterID,username,password,fname,lname) " + " values ('" + lblMasterID.Text.Trim() + "','" + lblusername.Text.Trim() + "','" + lblpassword.Text.Trim() + "','" + lblfname.Text.Trim() + "','" + lbllname.Text.Trim() + "')";
                    }
                    cmd.ExecuteNonQuery();
                }
            }
            tr.Commit();
            Label2.Text = "บันทึกข้อมูลเรียบร้อย";
        }
        catch (SqlException ex)
        {
            tr.Rollback();
            Label2.Text = "Error - TRANSACTION ROLLED BACK\n" + ex.Message;
        }
        catch (Exception ex)
        {
            tr.Rollback();
            Label2.Text = "System Error\n" + ex.Message;
        }
        finally
        {
            objConn.Close();
            tr.Dispose();
        }
    }

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-12-03 09:03:46 By : SponG_Gy
 


 

No. 19



โพสกระทู้ ( 88 )
บทความ ( 0 )



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


Code (C#)
for (int j = 0; j < rowCount; j++)
            {
                GridViewRow row = GridView1.Rows[j];

                CheckBox cbselect = (CheckBox)row.FindControl("cbselect");
                Label lblMasterID = (Label)row.FindControl("lblMasterID");
                Label lblusername = (Label)row.FindControl("lblusername ");
                Label lblpassword = (Label)row.FindControl("lblpassword");
                Label lblfname = (Label)row.FindControl("lblfname");
                Label lbllname = (Label)row.FindControl("lbllname");

                if (cbselect.Checked == true) // check แถวที่ select ตรงนี้ครับ
                {
                    //ส่วนการ Insert เข้า DB
                        cmd.CommandText = "Insert Into Sheet1(MasterID,username,password,fname,lname) " + " values ('" + lblMasterID.Text.Trim() + "','" + lblusername.Text.Trim() + "','" + lblpassword.Text.Trim() + "','" + lblfname.Text.Trim() + "','" + lbllname.Text.Trim() + "')";
                    
                    cmd.ExecuteNonQuery();
                }
            
            tr.Commit();
            Label2.Text = "บันทึกข้อมูลเรียบร้อย";
        }


เหมือนจะวนเกินมา ลูปนึงครับ ลองแก้ตามด้านบนดูอีกทีครับ


ประวัติการแก้ไข
2012-12-03 09:33:32
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-12-03 09:32:54 By : Niratiam
 


 

No. 20



โพสกระทู้ ( 33 )
บทความ ( 0 )



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


ลองเอา loop ออกตามบนแล้วยังไม่ได้ครับ ไม่ error แต่ insert ไม่เข้า DB ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-12-03 10:01:10 By : SponG_Gy
 


 

No. 21



โพสกระทู้ ( 88 )
บทความ ( 0 )



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


ลองเช็คพวก id ของพวก Label Checkbox ว่าตรงกันไหมครับ

ขอดู code ของหน้า design หน่อยครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-12-03 10:12:40 By : Niratiam
 


 

No. 22



โพสกระทู้ ( 33 )
บทความ ( 0 )



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


นี่ครับ หน้า Design

Code (C#)
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <asp:Label id="lblText" runat="server"></asp:Label>
        <br />
        <br />
    Excel No. :
        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
                        &nbsp;
        <br />
        <br />
<asp:FileUpload ID="FileUpload1" runat="server" />
        <br />
        <br />
        <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
&nbsp;<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Uploads" />
        <asp:Label ID="Label2" runat="server" Text="Label" Visible="False"></asp:Label>
        <br />
        <br />
        <asp:Button ID="Button2" runat="server" onclick="Button2_Click" 
            Text="Save To DB" />
        <br />
        <asp:RadioButtonList ID="RadioButtonList1" runat="server" Height="16px" 
            RepeatDirection="Horizontal" Visible="False" Width="129px">
            <asp:ListItem Selected="True">ใช้</asp:ListItem>
        </asp:RadioButtonList>
        <br />
        <asp:GridView ID="GridView1" runat="server" BackColor="#CCCCCC" 
            BorderColor="#999999" BorderStyle="Solid" BorderWidth="3px" CellPadding="4" 
            CellSpacing="2" ForeColor="Black" onrowdatabound="GridView1_RowDataBound" 
            style="margin-right: 0px">
            <Columns>
                <asp:TemplateField HeaderText="select">
                    <ItemTemplate>
                        <asp:CheckBox ID="cbselect" runat="server" AutoPostBack="True"/>
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
            <FooterStyle BackColor="#CCCCCC" />
            <HeaderStyle BackColor="Black" Font-Bold="True" ForeColor="White" />
            <PagerStyle BackColor="#CCCCCC" ForeColor="Black" HorizontalAlign="Left" />
            <RowStyle BackColor="White" />
            <SelectedRowStyle BackColor="#000099" Font-Bold="True" ForeColor="White" />
            <SortedAscendingCellStyle BackColor="#F1F1F1" />
            <SortedAscendingHeaderStyle BackColor="#808080" />
            <SortedDescendingCellStyle BackColor="#CAC9C9" />
            <SortedDescendingHeaderStyle BackColor="#383838" />
        </asp:GridView>
        
        <br />  
    </div>
    </form>
</body>
</html>


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-12-03 10:22:28 By : SponG_Gy
 


 

No. 23



โพสกระทู้ ( 88 )
บทความ ( 0 )



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


อย่างแรกครับ ลอง set AutoPostBack = False ใน cbselect ก่อนครับ

อย่างสอง คุณใช้ AutoGenerateColumns ของ Gridview ไม่ได้ Binding Manaul ดังนั้นทำให้ไม่มีพวก Control ที่เรา Find ไว้ครับ

ให้ลองแก้ตามด้านล่างนี่ครับ

Code (C#)
for (int j = 0; j < rowCount; j++)
            {
                GridViewRow row = GridView1.Rows[j];

                CheckBox cbselect = (CheckBox)row.FindControl("cbselect");
                string lblMasterID = row.Cells[2].Text; 
                string lblusername = row.Cells[3].Text;
                string lblpassword = row.Cells[4].Text;
                string lblfname = row.Cells[5].Text;
                string lbllname = row.Cells[6].Text;

                if (cbselect.Checked == true) // check แถวที่ select ตรงนี้ครับ
                {
                    //ส่วนการ Insert เข้า DB
                        cmd.CommandText = "Insert Into Sheet1(MasterID,username,password,fname,lname) " + " values ('" + lblMasterID + "','" + lblusername + "','" + lblpassword + "','" + lblfname + "','" + lbllname + "')";
                    
                    cmd.ExecuteNonQuery();
                }
            
            tr.Commit();
            Label2.Text = "บันทึกข้อมูลเรียบร้อย";
        }


ลองดูครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-12-03 10:45:47 By : Niratiam
 


 

No. 24



โพสกระทู้ ( 33 )
บทความ ( 0 )



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


ขอบคุณนะครับ ผมลอง code คุณ Niratiam แล้ว test ยังไม่เข้า DB เลยลองแก้ cell [] เป็นแบบนี้
Code (C#)
CheckBox cbselect = (CheckBox)row.FindControl("cbselect");
                string lblMasterID = row.Cells[1].Text;
                string lblusername = row.Cells[2].Text;
                string lblpassword = row.Cells[3].Text;
                string lblfname = row.Cells[4].Text;
                string lbllname = row.Cells[5].Text;

ปรากฎว่าเข้า DB แต่ขึ้น Error...ตามรูปข้างล่างตลอด เป็นเพราะอะไรหรอครับ แล้วผมลองเลือกแถวที่ 3 เป็นต้นไปข้อมูลก็จะไม่เข้า DB ด้วยครับ จะเข้าถ้าเลือกcheckbox row 1,2 อะครับ

Error

พอผมลอง comment tr.Rollback(); ก็ไม่ติด error แต่เข้า DB ได้แค่ 2 row มากกว่านั้นไม่เข้าเลยครับ


ประวัติการแก้ไข
2012-12-03 11:29:30
2012-12-03 11:29:51
2012-12-03 11:46:23
2012-12-03 11:46:31
2012-12-03 11:46:45
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-12-03 11:29:02 By : SponG_Gy
 


 

No. 25



โพสกระทู้ ( 33 )
บทความ ( 0 )



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


ผมแก้ได้แล้วโดยใส่ trim เข้าไปครับ

Code (C#)
int rowCount = GridView1.Rows.Count; // นับ Row ใน GridView 

            for (int j = 0; j < rowCount; j++)
            {
                GridViewRow row = GridView1.Rows[j];

                CheckBox cbselect = (CheckBox)row.FindControl("cbselect");
                string lblMasterID = row.Cells[1].Text.Trim();
                string lblusername = row.Cells[2].Text.Trim();
                string lblpassword = row.Cells[3].Text.Trim();
                string lblfname = row.Cells[4].Text.Trim();
                string lbllname = row.Cells[5].Text.Trim();

                if (cbselect.Checked == true) // check แถวที่ select
                {
                    //ส่วนการ Insert เข้า DB
                    cmd.CommandText = "Insert Into Sheet1(MasterID,username,password,fname,lname) " + " values ('" + lblMasterID + "','" + lblusername + "','" + lblpassword + "','" + lblfname + "','" + lbllname + "')";
                }
                cmd.ExecuteNonQuery();
            }
                tr.Commit();
                Label2.Text = "บันทึกข้อมูลเรียบร้อย";
        }


แต่ยังติดอยู่ที่เวลาเข้าข้อมูล ถ้าเลือกเข้าทุกแถวเข้าได้ครับ แต่ถ้าเลือกบางแถวหรือแถวเดียว การเข้าข้อมูลจะผิดพลาดตามภาพเลยครับ

เข้า B ผิดอยู่

รบกวนช่วยหน่อยนะครับ ผมพยายามแก้ก็ยังงงอยู่ดีครับ ขอบคุณมากครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-12-03 14:09:13 By : SponG_Gy
 


 

No. 26



โพสกระทู้ ( 88 )
บทความ ( 0 )



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


เอ... ผมลองก็ได้ปกตินะครับ

ลองแบบนี้ได้ไหมครับ

Code (C#)
if (cbselect.Checked == true) // check แถวที่ select
{
                    //ส่วนการ Insert เข้า DB
                    cmd.CommandText = "Insert Into Sheet1(MasterID,username,password,fname,lname) " + " values ('" + lblMasterID + "','" + lblusername + "','" + lblpassword + "','" + lblfname + "','" + lbllname + "')";

cmd.ExecuteNonQuery();
}

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-12-03 14:52:22 By : Niratiam
 


 

No. 27



โพสกระทู้ ( 33 )
บทความ ( 0 )



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


โอ้ว ขอบคุณมากมากครับคุณ Niratiam ได้แล้วครับ วาง Query ผิดตำแหน่งนี่เอง มันเลยวนลูบแล้ว Query ผมไม่รอบครอบเอง ขอบคุณนะครับ ขอบคุณมากมากครับที่ให้คำแนะนำมาโดยตลอด
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-12-03 15:11:51 By : SponG_Gy
 


 

No. 28



โพสกระทู้ ( 88 )
บทความ ( 0 )



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


ยินดีครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-12-03 15:16:58 By : Niratiam
 


 

No. 29



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

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

ดีใจด้วยครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-12-03 22:31:52 By : mr.win
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : Web(ASP.Net C#) นำค่าจาก textbox ไปแสดงใน label(item template)ครับ ช่วยหน่อยนะครับ!!! ขอบคุณล่วงหน้าครับพี่ๆ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 อัตราราคา คลิกที่นี่