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

HOME > .NET Framework > Forum > รบกวนช่วยดูทีนะคะ ไม่สามารถโชว์ข้อมูลผ่านทาง DataGridVIew ได้ค่ะ (MS Access+VB C# )



 

รบกวนช่วยดูทีนะคะ ไม่สามารถโชว์ข้อมูลผ่านทาง DataGridVIew ได้ค่ะ (MS Access+VB C# )

 



Topic : 075365

Guest




Code (C#)
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;

namespace OneTime
{
    public partial class FormSaleOrder : Form
    {
        public FormSaleOrder()
        {
            InitializeComponent();
        }


        private DataSet _dataset;
        private OleDbConnection _conn;
        private OleDbCommand _cmd;
        private OleDbDataAdapter _adapter;



        private void FormSaleOrder_Load(object sender, EventArgs e)
        {
            string conStr = "Provider=Microsoft.Ace.OleDb.12.0;" 
                + @"Data Source=C:\Onetime Database\Database.accdb";

            _conn = new OleDbConnection(conStr);
            _conn.Open();

            string sql = "SELECT * FROM Customer";
            _cmd = new OleDbCommand(sql, _conn);
            OleDbDataReader reader = _cmd.ExecuteReader();

            while(reader.Read())
                cbxCust.Items.Add(reader["CustomerName"]);

            sql = "SELECT * FROM Product";
            _cmd = new OleDbCommand(sql, _conn);
            reader = _cmd.ExecuteReader();


            while (reader.Read())
                cbxProduct.Items.Add(reader["ProductName"]);

            dateTimePicker1.Value = DateTime.Today;

            cbxCust.SelectedIndex = 0;
            cbxProduct.SelectedIndex = 0;
            btnDelete.Enabled = false;

           
        }

        private void FormSaleOrder_FormClosing(object sender, FormClosingEventArgs e)
        {
            _conn.Close();
        }


        private void showOrder()
        {
            string sql = "SELECT * FROM SaleOrder WHERE CustomerName = @cust";

            _cmd = new OleDbCommand(sql, _conn);
            _cmd.Parameters.AddWithValue("cust", cbxCust.SelectedItem);

            _adapter = new OleDbDataAdapter(_cmd);
            _dataset = new DataSet();

            _adapter.Fill(_dataset, "order");

            dataGridView1.DataSource = _dataset.Tables["order"];
        }

        private void cbxCust_SelectedIndexChanged(object sender, EventArgs e)
        {
            showOrder();
        }

        private void btnAdd_Click(object sender, EventArgs e)
        {
            double quan;
            if (!double.TryParse(txbTotal.Text, out quan))
            {
                MessageBox.Show("จำนวนไม่ถูกต้อง");
                return;
            }


            string sql = "INSERT INTO SaleOrder(CustomerName, ProductName, Quantity, OrderDate) VALUE (@cust, @product, @quan, @orderdate)";

            _cmd = new OleDbCommand(sql, _conn);
        
            _cmd.Parameters.AddWithValue("cust", cbxCust.SelectedItem);
            _cmd.Parameters.AddWithValue("product", cbxProduct.SelectedItem);
            _cmd.Parameters.AddWithValue("quan", quan);
            _cmd.Parameters.AddWithValue("orderdate", dateTimePicker1.Value);

            int affectedRow = _cmd.ExecuteNonQuery();
            if (affectedRow < 1)

                MessageBox.Show("Error!");
            else
                showOrder();

        }

        private void dataGridView1_RowStateChanged(object sender, DataGridViewRowStateChangedEventArgs e)
        {
            if (dataGridView1.SelectedRows.Count > 0)
                btnDelete.Enabled = true;
            else
                btnDelete.Enabled = false;
        }

        
       



      
    }
}





คือต้องการรับข้อมูลจาก user แล้วแสดงข้อมูลที่ DataGridView แต่พอรันแล้วเด้ง error ทันที อยากทราบว่ามีวิธีแก้ไขอย่างไรหรือคะ และสาเหตุเกิดจาก Code ผิด หรือไม่สามารถอัพเดตที่ Access ได้กันแน่คะ มือใหม่เพิ่งหัดเขียนตามหนังสือค่ะ รบกวนช่วยทีนะคะ

>>>>>>>>>> int affectedRow = _cmd.ExecuteNonQuery(); บรรทัดที่ error

ข้อความ error คือ System.Data.OleDb.OleDbException {"Syntax error in INSERT INTO statement."}



Tag : .NET, Ms Access, Win (Windows App), VB.NET, C#, VS 2010 (.NET 4.x)







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2012-03-12 02:49:59 By : HappySnow View : 1118 Reply : 3
 

 

No. 1



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

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

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

Quote:
VALUE


น่าจะมี S ด้วยครับ VALUES






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-03-12 05:49:23 By : webmaster
 


 

No. 2

Guest


ขอบคุณค่ะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-03-13 18:52:28 By : HappySnow
 

 

No. 3

Guest


Code (C#)
private void showOrder()
        {
            string sql = @"SELECT SaleOrder.OrderID, SaleOrder.ProductName, SaleOrder.Quantity, Product.Price, (SaleOrder.Quantity * Product.Price) AS OrderTotal
           
                
                         FROM SaleOrder
                         
                         LEFT JOIN Product
                         ON SaleOrder.ProductName = Product.ProductName
                    
                        WHERE CustomerName = @cust";




            _cmd = new OleDbCommand(sql, _conn);
            _cmd.Parameters.AddWithValue("cust", cbxCust.SelectedItem);
            _adapter = new OleDbDataAdapter(_cmd);

            _dataset.Clear();
            _adapter.Fill(_dataset, "order");

            dataGridView1.DataSource = _dataset.Tables["order"];


            Double sum = 0;
  

            int num = _dataset.Tables["order"].Rows.Count;
            for (int i = 0; i < num; i++)
                sum += Convert.ToDouble(_dataset.Tables["order"].Rows[i]["OrderTotal"]);

                
                lblTotal.Text = sum.ToString("#,0.##");

                
        }



        private void showOrder001()
        {
            string sql = @"SELECT SaleOrder.OrderID, SaleOrder.ProductName, SaleOrder.Quantity, Product.Price, 
                    ((SaleOrder.Quantity * Product.Price)*0.07) AS OrderVat
                
                         FROM SaleOrder
                         
                         LEFT JOIN Product
                         ON SaleOrder.ProductName = Product.ProductName
                    
                        WHERE CustomerName = @cust";




            _cmd = new OleDbCommand(sql, _conn);
            _cmd.Parameters.AddWithValue("cust", cbxCust.SelectedItem);
            _adapter = new OleDbDataAdapter(_cmd);

            _dataset.Clear();
            _adapter.Fill(_dataset, "order");

            dataGridView1.DataSource = _dataset.Tables["order"];



            Double sum3 = 0;

            int num = _dataset.Tables["order"].Rows.Count;
            for (int i = 0; i < num; i++)
                sum3 += Convert.ToDouble(_dataset.Tables["order"].Rows[i]["OrderVat"]);


            lblVat.Text = sum3.ToString("#,0.##");

  
        }


        private void showOrder003()
        {
            string sql = @"SELECT SaleOrder.OrderID, SaleOrder.ProductName, SaleOrder.Quantity, Product.Price, 
                    ((SaleOrder.Quantity * Product.Price)-(SaleOrder.Quantity * Product.Price)*0.07) AS OrderOld
                
                         FROM SaleOrder
                         
                         LEFT JOIN Product
                         ON SaleOrder.ProductName = Product.ProductName
                    
                        WHERE CustomerName = @cust";




            _cmd = new OleDbCommand(sql, _conn);
            _cmd.Parameters.AddWithValue("cust", cbxCust.SelectedItem);
            _adapter = new OleDbDataAdapter(_cmd);

            _dataset.Clear();
            _adapter.Fill(_dataset, "order");

            dataGridView1.DataSource = _dataset.Tables["order"];



            Double sum2 = 0;

            int num = _dataset.Tables["order"].Rows.Count;
            for (int i = 0; i < num; i++)
                sum2 += Convert.ToDouble(_dataset.Tables["order"].Rows[i]["OrderOld"]);


            label3 .Text = sum2.ToString("#,0.##");


        }




รบกวนถามอีกนิดนะคะ คือต้องการหาค่า VAT , Discount , ราคาเดิม จากการนำค่า Quantity และ Price จากตาราง SaleOrder และ Product มาคำนวณให้กลายเป็น ShowOrder() อันเดียวนี่ทำยังไงคะ

คือไม่เข้าใจการนำค่ามาหักลบอ่ะค่ะ เลยแยกเป็น 3 อัน ShowOrder(),ShowOrder001(),ShowOrder002() (และคิดว่าไม่น่าจะใช่แบบนี้)

แล้วเกิดปัญหาคือเวลาเรียกโชว์ DataGridView ข้อมูลทับกันหมดเลยค่ะ บางค่าไม่แสดง ช่วยแนะนำทีนะคะ สับสนมาก ว่าต้องเขียนในรูปแบบไหน ค่าถึงไม่ทับกัน
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-03-13 19:00:40 By : HappySnow
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : รบกวนช่วยดูทีนะคะ ไม่สามารถโชว์ข้อมูลผ่านทาง DataGridVIew ได้ค่ะ (MS Access+VB C# )
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 00
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 อัตราราคา คลิกที่นี่