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 > C# Import ข้อมูลใน excel ขึ้น datatable แล้วเอา datatable เข้า database ภาษาไทยเป็น ??



 

C# Import ข้อมูลใน excel ขึ้น datatable แล้วเอา datatable เข้า database ภาษาไทยเป็น ??

 



Topic : 116975



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



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



คือต้องการเอาไฟล์ excel ใส่โปรแกรมที่พัฒนาแบบ Window Form Application ใช้ C# คือตอนนี้เอา excel ทำเป็น datatable ได้แล้ว แล้วเอา datatable ขึ้น datagridview ยังเป็นภาษาไทยอ่ะฮะ แต่พอเอา datatable เรียกทีละช่องใส่ข้อมูลลงในฐานข้อมูล ในฐานภาษาไทยจะเป็น ?? ทั้งหมดเลยอ่ะฮะ พอมีทางแก้บ้างไหมอ่ะฮะ

Code
private void btnOpen_Click(object sender, EventArgs e)
        {
            OpenFileDialog openfile = new OpenFileDialog();
            openfile.Title = "Select file";
            openfile.Filter = "Excel Sheet(*.xls,*.xlsx)|*.xls;*.xlsx|All Files(*.*)|*.*";
            openfile.FilterIndex = 1;
            openfile.RestoreDirectory = true;
            if (openfile.ShowDialog() == DialogResult.OK)
            {
                textBox1.Text = openfile.FileName;
                System.Data.DataTable dtb = ConvertToDataTable(textBox1.Text);
                dataGridView1.DataSource = dtb;
            }
        }

public System.Data.DataTable ConvertToDataTable(string path)
        {
            try
            {
                object rowIndex = 1;
                dt = new System.Data.DataTable();
                DataRow row;
                Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application();
                
                Microsoft.Office.Interop.Excel.Workbook workBook = app.Workbooks.Open(path, 0, true, 5, "", "", true,
                Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
                Microsoft.Office.Interop.Excel.Worksheet workSheet = (Microsoft.Office.Interop.Excel.Worksheet)workBook.ActiveSheet;
               

                int temp = 1;
                while (((Microsoft.Office.Interop.Excel.Range)workSheet.Cells[rowIndex, temp]).Value2 != null)
                {
                    dt.Columns.Add(Convert.ToString(((Microsoft.Office.Interop.Excel.Range)workSheet.Cells[rowIndex, temp]).Value2));
                    temp++;
                }
                rowIndex = Convert.ToInt32(rowIndex) + 1;
                int columnCount = temp;
                temp = 1;
                while (((Microsoft.Office.Interop.Excel.Range)workSheet.Cells[rowIndex, temp]).Value2 != null)
                {
                    row = dt.NewRow();
                    for (int i = 1; i < columnCount; i++)
                    {
                        row[i - 1] = Convert.ToString(((Microsoft.Office.Interop.Excel.Range)workSheet.Cells[rowIndex, i]).Value2);
                    }
                    dt.Rows.Add(row);
                    rowIndex = Convert.ToInt32(rowIndex) + 1;
                    temp = 1;
                }
                app.Workbooks.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error:" + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            return dt;
        }

private void btnImportDB_Click(object sender, EventArgs e)
        {
            if(dt!=null)
            {
                try
                {
                    cn.ConnectionString = connSt;
                    cmd.Connection = cn;
                    cn.Open();

                    cmd.CommandText = "delete from info";
                    cmd.ExecuteNonQuery();

                    for (int i = 0; i < dt.Rows.Count; i++)
                    {
                        cmd.CommandText = "insert into info (idst,name,sname,sex,class,room,number) values ('" + dt.Rows[i]["idst"].ToString()
                            + "','" + dt.Rows[i]["name"].ToString() + "','" + dt.Rows[i]["sname"].ToString() + "','" + dt.Rows[i]["sex"].ToString()
                            + "','" + dt.Rows[i]["class"].ToString() + "','" + dt.Rows[i]["room"].ToString() + "','" +
                            dt.Rows[i]["number"].ToString() + "')";
                        cmd.ExecuteNonQuery();
                    }
                    MessageBox.Show("Success!", "Result", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                finally
                {
                    cn.Close();
                }
            }
        }


datagrid result

db

ตอนนี้ทำโครงงานอยู่อ่ะฮะ เรียกว่าเขียนC#เป็นโครงงานอันแรกเลยก็ได้ฮะ ขอความกรุณาด้วยนะฮะ ขอบคุณทุกคนที่มาให้คำแนะนำล่วงหน้าเลยนะฮะ ขอบคุณฮะ



Tag : Ms SQL Server 2012, Win (Windows App), C#, Windows









ประวัติการแก้ไข
2015-06-06 21:58:14
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2015-06-06 21:56:42 By : npmomo View : 3491 Reply : 8
 

 

No. 1



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

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

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

Code (C#)
        public static string EncodeUTF8(string strPlanText)
        {
            UTF8Encoding utf8 = new UTF8Encoding();
            string unicodeString = "Quick brown fox";
            byte[] encodedBytes = utf8.GetBytes(unicodeString);
            return Encoding.UTF8.GetString(encodedBytes);
        }


Code
EncodeUTF8(dt.Rows[i]["name"].ToString())


ลองเข้ารหัสแบบ UTF-8 ก่อนได้ไหม๊ครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-06-07 09:27:57 By : mr.win
 


 

No. 2



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

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

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

กรณีที่ decode()

Code (C#)
public static string DecodeFromUtf8(this string utf8String)
{
    // copy the string as UTF-8 bytes.
    byte[] utf8Bytes = new byte[utf8String.Length];
    for (int i=0;i<utf8String.Length;++i) {
        //Debug.Assert( 0 <= utf8String[i] && utf8String[i] <= 255, "the char must be in byte's range");
        utf8Bytes[i] = (byte)utf8String[i];
    }

    return Encoding.UTF8.GetString(utf8Bytes,0,utf8Bytes.Length);
}

DecodeFromUtf8("d\u00C3\u00A9j\u00C3\u00A0"); // déjà

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-06-07 09:30:42 By : mr.win
 

 

No. 3

Guest


ขอบคุณนะฮะ แต่ว่ายังไม่ได้เลยอ่าา T_T พอมีวิธีอื่นอีกไหมอ่ะฮะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-06-07 18:27:30 By : npmomo
 


 

No. 4



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



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


แล้ว Column ที่เก็บข้อมูลเป็น nvarchar รึเปล่า
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-06-10 20:15:36 By : watcharop
 


 

No. 5



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



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

มีโค้ดบ้านๆมาฝากครับ

จะได้ไม่ต้องวนลูป

Code (C#)
public static System.Data.DataTable GetTableFormExcel(string _SQL, string FileExcel)
        {
            string _ConnectionString = @"Data Source=" + FileExcel + "; Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties=Excel 12.0;";
            try
            {
                System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection(_ConnectionString);
                conn.Open();
                string strQuery = _SQL;
                System.Data.OleDb.OleDbDataAdapter adapter = new System.Data.OleDb.OleDbDataAdapter(strQuery, conn);
                System.Data.DataSet ds = new System.Data.DataSet();
                adapter.Fill(ds);
                return ds.Tables[0];
            }
            catch { return null; }
            
        }


การใช้งาน

Code (C#)
DataTable _dt1 = TORServices.clsDatabaseServices.GetTableFormExcel("SELECT * FROM `mg_Kg$Print_Area`", FileExcel);
if (_dt1 != null) { dgvmgKg.DataSource = _dt1; }

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-06-11 08:24:22 By : lamaka.tor
 


 

No. 6



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

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

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

ตอบความคิดเห็นที่ : 4 เขียนโดย : watcharop เมื่อวันที่ 2015-06-10 20:15:36
รายละเอียดของการตอบ ::
นั่นซิ ผมลืมไปได้อย่างไร

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-06-11 09:54:09 By : mr.win
 


 

No. 7

Guest


Column ที่เก็บข้อมูลเป็น nvarchar อีกเสียง ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-06-11 15:34:34 By : arktae
 


 

No. 8



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



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

ขอบคุณทุกคนมากเลยนะฮะๆ ตอนนี้ได้แล้วฮะ ●□● >♢<
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-06-11 15:39:12 By : npmomo
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : C# Import ข้อมูลใน excel ขึ้น datatable แล้วเอา datatable เข้า database ภาษาไทยเป็น ??
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 02
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 อัตราราคา คลิกที่นี่