Từ 1 tới 5 trên tổng số 5 kết quả

Đề tài: Gặp vấn đề về câu lệnh update trong c# vào access

  1. #1
    Ngày gia nhập
    05 2011
    Bài viết
    3

    Mặc định Gặp vấn đề về câu lệnh update trong c# vào access

    MÌNH BỊ LỖI "Syntax error in UPDATE statement" khi Click Cập Nhật dữ liệu.
    MONG CÁC BẠN GIÚP ĐỠ!

    Click vào hình ảnh để lấy hình ảnh lớn

Tên:		1.PNG
Lần xem:	1
Size:		2.7 KB
ID:		68909Click vào hình ảnh để lấy hình ảnh lớn

Tên:		Capture.PNG
Lần xem:	1
Size:		67.1 KB
ID:		68910Click vào hình ảnh để lấy hình ảnh lớn

Tên:		Capture11.PNG
Lần xem:	1
Size:		10.0 KB
ID:		68911

    private void btnCapNhat_Click(object sender, EventArgs e)
    {
    tenhinh = txtMahv.Text.ToString();
    if (picHocVien.Image == null)
    {
    strHinh = null;
    }
    else
    {
    picHocVien.Image.Save(Application.StartupPath + "/hinh/" + tenhinh + ".jpg");
    strHinh = tenhinh + ".jpg";
    }
    if (cboTrangThai.Text == "Hiện Diện")
    tt = "HD";
    if (cboTrangThai.Text == "Kỷ Luật")
    tt = "KL";
    if (cboTrangThai.Text == "Phép")
    tt = "P";
    if (cboTrangThai.Text == "Thanh Lý")
    tt = "TL";
    if (cboTrangThai.Text == "Y Tế")
    tt = "YT";
    //string update = "Update tblHocVien set hotenhv='" + txtHoTen.Text + "', gioitinh='" + cboGioitinh.Text + "', namsinh=" + txtNamSinh.Text + ", ngaynhaptruong=" + dateNgayNhap.Text + ", to='" + cboTo.Text + "', trangthai='" + tt + "', trinhdo='" + txtTrinhDo.Text + "', nghe='" + cboNghe.Text + "', yoga='" + cboYoga.Text + "', thehinh='" + cboTheHinh.Text + "', chuyende='" + cboChuyenDe.Text + "', canhle='" + txtCanhLe.Text + "', loaihopdong='" + cboLoaiHopDong.Text + "', diachi='" + rtbDiaChi.Text + "', hinh='" + strHinh + "' where mahv='" + txtMahv.Text + "'";
    string update = "Update tblHocVien Set hotenhv=@hotenhv, gioitinh=@gioitinh, namsinh=@namsinh, ngaynhaptruong=@ngaynhaptruong, to=@to, trangthai=@trangthai, trinhdo=@trinhdo, nghe=@nghe, yoga=@yoga, thehinh=@thehinh, chuyende=@chuyende, canhle=@canhle, loaihopdong=@loaihopdong, diachi=@diachi, hinh=@hinh Where mahv=@mahv";
    OleDbCommand cmd = new OleDbCommand(update, con);
    cmd.Parameters.Add("@hotenhv", OleDbType.VarChar).Value = txtHoTen.Text;
    cmd.Parameters.Add("@gioitinh", OleDbType.VarChar).Value = cboGioitinh.Text;
    cmd.Parameters.Add("@namsinh", OleDbType.Integer).Value = Convert.ToInt32(txtNamSinh.Text);
    cmd.Parameters.Add("@ngaynhaptruong", OleDbType.VarChar).Value = dateNgayNhap.Text;
    cmd.Parameters.Add("@to", OleDbType.VarChar).Value = cboTo.Text;
    cmd.Parameters.Add("@trangthai", OleDbType.VarChar).Value = tt;
    cmd.Parameters.Add("@trinhdo", OleDbType.VarChar).Value = txtTrinhDo.Text;
    cmd.Parameters.Add("@nghe", OleDbType.VarChar).Value = cboNghe.Text;
    cmd.Parameters.Add("@yoga", OleDbType.VarChar).Value = cboYoga.Text;
    cmd.Parameters.Add("@thehinh", OleDbType.VarChar).Value = cboTheHinh.Text;
    cmd.Parameters.Add("@chuyende", OleDbType.VarChar).Value = cboChuyenDe.Text;
    cmd.Parameters.Add("@canhle", OleDbType.VarChar).Value = txtCanhLe.Text;
    cmd.Parameters.Add("@loaihopdong", OleDbType.VarChar).Value = cboLoaiHopDong.Text;
    cmd.Parameters.Add("@diachi", OleDbType.VarChar).Value = rtbDiaChi.Text;
    cmd.Parameters.Add("@hinh", OleDbType.VarChar).Value = strHinh;
    cmd.Parameters.Add("@mahv", OleDbType.VarChar).Value = txtMahv.Text;
    cmd.ExecuteNonQuery();
    // Trả tài nguyên
    cmd.Dispose();
    //Load lai du lieu
    HienThi();
    MessageBox.Show("Cập nhật dữ liệu thành công", "Thông báo!");
    }

  2. #2
    Ngày gia nhập
    12 2015
    Nơi ở
    Đà Nẵng
    Bài viết
    446

    Placeholder cho tham số trong access là "?", dạng "@thamso" là dành cho sqlserver
    Câu sql phải viết lại là
    SQL Code:
    1. UPDATE tblHocVien SET hotenhv=? WHERE masohv=?

  3. #3
    Ngày gia nhập
    05 2011
    Bài viết
    3

    Trích dẫn Nguyên bản được gửi bởi khoaph Xem bài viết
    Placeholder cho tham số trong access là "?", dạng "@thamso" là dành cho sqlserver
    Câu sql phải viết lại là
    SQL Code:
    1. UPDATE tblHocVien SET hotenhv=? WHERE masohv=?

    VẪN BÁO LỖI NHƯ VẬY BẠN Ạ!
    GIÚP MÌNH VỚI....


    private void btnCapNhat_Click(object sender, EventArgs e)
    {
    tenhinh = txtMahv.Text.ToString();
    if (picHocVien.Image == null)
    {
    strHinh = null;
    }
    else
    {
    picHocVien.Image.Save(Application.StartupPath + "/hinh/" + tenhinh + ".jpg");
    strHinh = tenhinh + ".jpg";
    }
    if (cboTrangThai.Text == "Hiện Diện")
    tt = "HD";
    if (cboTrangThai.Text == "Kỷ Luật")
    tt = "KL";
    if (cboTrangThai.Text == "Phép")
    tt = "P";
    if (cboTrangThai.Text == "Thanh Lý")
    tt = "TL";
    if (cboTrangThai.Text == "Y Tế")
    tt = "YT";

    DateTime NgayNhapTruong = Convert.ToDateTime(dateNgayNhap.Text);
    string update = "Update tblHocVien set hotenhv='" + txtHoTen.Text + "', gioitinh='" + cboGioitinh.Text + "', namsinh=" + Convert.ToInt32(txtNamSinh.Text) + ", ngaynhaptruong='" + NgayNhapTruong + "', to='" + cboTo.Text + "', trangthai='" + tt + "', trinhdo='" + txtTrinhDo.Text + "', nghe='" + cboNghe.Text + "', yoga='" + cboYoga.Text + "', thehinh='" + cboTheHinh.Text + "', chuyende='" + cboChuyenDe.Text + "', canhle='" + txtCanhLe.Text + "', loaihopdong='" + cboLoaiHopDong.Text + "', diachi='" + rtbDiaChi.Text + "', hinh='" + strHinh + "' where mahv='" + txtMahv.Text + "'";
    OleDbCommand cmd = new OleDbCommand(update, con);
    /*string update = "Update tblHocVien Set hotenhv=@hotenhv, gioitinh=@gioitinh, namsinh=@namsinh, ngaynhaptruong=@ngaynhaptruong, to=@to, trangthai=@trangthai, trinhdo=@trinhdo, nghe=@nghe, yoga=@yoga, thehinh=@thehinh, chuyende=@chuyende, canhle=@canhle, loaihopdong=@loaihopdong, diachi=@diachi, hinh=@hinh Where mahv=@mahv";
    OleDbCommand cmd = new OleDbCommand(update, con);
    cmd.Parameters.Add("@hotenhv", OleDbType.VarChar).Value = txtHoTen.Text;
    cmd.Parameters.Add("@gioitinh", OleDbType.VarChar).Value = cboGioitinh.Text;
    cmd.Parameters.Add("@namsinh", OleDbType.Integer).Value = Convert.ToInt32(txtNamSinh.Text);
    cmd.Parameters.Add("@ngaynhaptruong", OleDbType.Date).Value = NgayNhapTruong;
    cmd.Parameters.Add("@to", OleDbType.VarChar).Value = cboTo.Text;
    cmd.Parameters.Add("@trangthai", OleDbType.VarChar).Value = tt;
    cmd.Parameters.Add("@trinhdo", OleDbType.VarChar).Value = txtTrinhDo.Text;
    cmd.Parameters.Add("@nghe", OleDbType.VarChar).Value = cboNghe.Text;
    cmd.Parameters.Add("@yoga", OleDbType.VarChar).Value = cboYoga.Text;
    cmd.Parameters.Add("@thehinh", OleDbType.VarChar).Value = cboTheHinh.Text;
    cmd.Parameters.Add("@chuyende", OleDbType.VarChar).Value = cboChuyenDe.Text;
    cmd.Parameters.Add("@canhle", OleDbType.VarChar).Value = txtCanhLe.Text;
    cmd.Parameters.Add("@loaihopdong", OleDbType.VarChar).Value = cboLoaiHopDong.Text;
    cmd.Parameters.Add("@diachi", OleDbType.VarChar).Value = rtbDiaChi.Text;
    cmd.Parameters.Add("@hinh", OleDbType.VarChar).Value = strHinh;
    cmd.Parameters.Add("@mahv", OleDbType.VarChar).Value = txtMahv.Text;
    */
    cmd.ExecuteNonQuery();
    // Trả tài nguyên
    cmd.Dispose();
    //Load lai du lieu
    HienThi();
    MessageBox.Show("Cập nhật dữ liệu thành công", "Thông báo!");
    }

  4. #4
    Ngày gia nhập
    08 2017
    Bài viết
    3,070

    Trích dẫn Nguyên bản được gửi bởi hoangtuechtn1991 Xem bài viết
    VẪN BÁO LỖI NHƯ VẬY BẠN Ạ!
    GIÚP MÌNH VỚI....
    Mình gia nhập diễn đàn lúc học cấp 1 - tiểu học à?
    Visual C# Code:
    1.         private void btnCapNhat_Click(object sender, EventArgs e)
    2.         {
    3.             tenhinh = txtMahv.Text.ToString();
    4.             if (picHocVien.Image == null)
    5.             {
    6.                 strHinh = null;
    7.             }
    8.             else
    9.             {
    10.                 picHocVien.Image.Save(Application.StartupPath + "/hinh/" + tenhinh + ".jpg");
    11.                 strHinh = tenhinh + ".jpg";
    12.             }
    13.             if (cboTrangThai.Text == "Hiện Diện")
    14.                 tt = "HD";
    15.             if (cboTrangThai.Text == "Kỷ Luật")
    16.                 tt = "KL";
    17.             if (cboTrangThai.Text == "Phép")
    18.                 tt = "P";
    19.             if (cboTrangThai.Text == "Thanh Lý")
    20.                 tt = "TL";
    21.             if (cboTrangThai.Text == "Y Tế")
    22.                 tt = "YT";
    23.  
    24.             DateTime NgayNhapTruong = Convert.ToDateTime(dateNgayNhap.Text);
    25.             string update = "Update tblHocVien set hotenhv='" + txtHoTen.Text + "', gioitinh='" + cboGioitinh.Text + "', namsinh=" + Convert.ToInt32(txtNamSinh.Text) + ", ngaynhaptruong='" + NgayNhapTruong + "', to='" + cboTo.Text + "', trangthai='" + tt + "', trinhdo='" + txtTrinhDo.Text + "', nghe='" + cboNghe.Text + "', yoga='" + cboYoga.Text + "', thehinh='" + cboTheHinh.Text + "', chuyende='" + cboChuyenDe.Text + "', canhle='" + txtCanhLe.Text + "', loaihopdong='" + cboLoaiHopDong.Text + "', diachi='" + rtbDiaChi.Text + "', hinh='" + strHinh + "' where mahv='" + txtMahv.Text + "'";
    26.             OleDbCommand cmd = new OleDbCommand(update, con);
    27.             /*string update = "Update tblHocVien Set hotenhv=@hotenhv, gioitinh=@gioitinh, namsinh=@namsinh, ngaynhaptruong=@ngaynhaptruong, to=@to, trangthai=@trangthai, trinhdo=@trinhdo, nghe=@nghe, yoga=@yoga, thehinh=@thehinh, chuyende=@chuyende, canhle=@canhle, loaihopdong=@loaihopdong, diachi=@diachi, hinh=@hinh Where mahv=@mahv";
    28.             OleDbCommand cmd = new OleDbCommand(update, con);
    29.             cmd.Parameters.Add("@hotenhv", OleDbType.VarChar).Value = txtHoTen.Text;
    30.             cmd.Parameters.Add("@gioitinh", OleDbType.VarChar).Value = cboGioitinh.Text;
    31.             cmd.Parameters.Add("@namsinh", OleDbType.Integer).Value = Convert.ToInt32(txtNamSinh.Text);
    32.             cmd.Parameters.Add("@ngaynhaptruong", OleDbType.Date).Value = NgayNhapTruong;
    33.             cmd.Parameters.Add("@to", OleDbType.VarChar).Value = cboTo.Text;
    34.             cmd.Parameters.Add("@trangthai", OleDbType.VarChar).Value = tt;
    35.             cmd.Parameters.Add("@trinhdo", OleDbType.VarChar).Value = txtTrinhDo.Text;
    36.             cmd.Parameters.Add("@nghe", OleDbType.VarChar).Value = cboNghe.Text;
    37.             cmd.Parameters.Add("@yoga", OleDbType.VarChar).Value = cboYoga.Text;
    38.             cmd.Parameters.Add("@thehinh", OleDbType.VarChar).Value = cboTheHinh.Text;
    39.             cmd.Parameters.Add("@chuyende", OleDbType.VarChar).Value = cboChuyenDe.Text;
    40.             cmd.Parameters.Add("@canhle", OleDbType.VarChar).Value = txtCanhLe.Text;
    41.             cmd.Parameters.Add("@loaihopdong", OleDbType.VarChar).Value = cboLoaiHopDong.Text;
    42.             cmd.Parameters.Add("@diachi", OleDbType.VarChar).Value = rtbDiaChi.Text;
    43.             cmd.Parameters.Add("@hinh", OleDbType.VarChar).Value = strHinh;
    44.             cmd.Parameters.Add("@mahv", OleDbType.VarChar).Value = txtMahv.Text;
    45.              */
    46.             cmd.ExecuteNonQuery();
    47.             // Trả tài nguyên
    48.             cmd.Dispose();
    49.             //Load lai du lieu
    50.             HienThi();
    51.             MessageBox.Show("Cập nhật dữ liệu thành công", "Thông báo!");
    52.         }
    muốn sửa thì đưa nó lên đây cả project, có DB - nhớ ghi chú nó ở dòng nào, file nào trong bản mô tả lỗi cần sửa!

  5. #5
    Ngày gia nhập
    12 2015
    Nơi ở
    Đà Nẵng
    Bài viết
    446

    Trích dẫn Nguyên bản được gửi bởi hoangtuechtn1991 Xem bài viết
    VẪN BÁO LỖI NHƯ VẬY BẠN Ạ!
    GIÚP MÌNH VỚI....


    private void btnCapNhat_Click(object sender, EventArgs e)
    {
    tenhinh = txtMahv.Text.ToString();
    if (picHocVien.Image == null)
    {
    strHinh = null;
    }
    else
    {
    picHocVien.Image.Save(Application.StartupPath + "/hinh/" + tenhinh + ".jpg");
    strHinh = tenhinh + ".jpg";
    }
    if (cboTrangThai.Text == "Hiện Diện")
    tt = "HD";
    if (cboTrangThai.Text == "Kỷ Luật")
    tt = "KL";
    if (cboTrangThai.Text == "Phép")
    tt = "P";
    if (cboTrangThai.Text == "Thanh Lý")
    tt = "TL";
    if (cboTrangThai.Text == "Y Tế")
    tt = "YT";

    DateTime NgayNhapTruong = Convert.ToDateTime(dateNgayNhap.Text);
    string update = "Update tblHocVien set hotenhv='" + txtHoTen.Text + "', gioitinh='" + cboGioitinh.Text + "', namsinh=" + Convert.ToInt32(txtNamSinh.Text) + ", ngaynhaptruong='" + NgayNhapTruong + "', to='" + cboTo.Text + "', trangthai='" + tt + "', trinhdo='" + txtTrinhDo.Text + "', nghe='" + cboNghe.Text + "', yoga='" + cboYoga.Text + "', thehinh='" + cboTheHinh.Text + "', chuyende='" + cboChuyenDe.Text + "', canhle='" + txtCanhLe.Text + "', loaihopdong='" + cboLoaiHopDong.Text + "', diachi='" + rtbDiaChi.Text + "', hinh='" + strHinh + "' where mahv='" + txtMahv.Text + "'";
    OleDbCommand cmd = new OleDbCommand(update, con);
    /*string update = "Update tblHocVien Set hotenhv=@hotenhv, gioitinh=@gioitinh, namsinh=@namsinh, ngaynhaptruong=@ngaynhaptruong, to=@to, trangthai=@trangthai, trinhdo=@trinhdo, nghe=@nghe, yoga=@yoga, thehinh=@thehinh, chuyende=@chuyende, canhle=@canhle, loaihopdong=@loaihopdong, diachi=@diachi, hinh=@hinh Where mahv=@mahv";
    OleDbCommand cmd = new OleDbCommand(update, con);
    cmd.Parameters.Add("@hotenhv", OleDbType.VarChar).Value = txtHoTen.Text;
    cmd.Parameters.Add("@gioitinh", OleDbType.VarChar).Value = cboGioitinh.Text;
    cmd.Parameters.Add("@namsinh", OleDbType.Integer).Value = Convert.ToInt32(txtNamSinh.Text);
    cmd.Parameters.Add("@ngaynhaptruong", OleDbType.Date).Value = NgayNhapTruong;
    cmd.Parameters.Add("@to", OleDbType.VarChar).Value = cboTo.Text;
    cmd.Parameters.Add("@trangthai", OleDbType.VarChar).Value = tt;
    cmd.Parameters.Add("@trinhdo", OleDbType.VarChar).Value = txtTrinhDo.Text;
    cmd.Parameters.Add("@nghe", OleDbType.VarChar).Value = cboNghe.Text;
    cmd.Parameters.Add("@yoga", OleDbType.VarChar).Value = cboYoga.Text;
    cmd.Parameters.Add("@thehinh", OleDbType.VarChar).Value = cboTheHinh.Text;
    cmd.Parameters.Add("@chuyende", OleDbType.VarChar).Value = cboChuyenDe.Text;
    cmd.Parameters.Add("@canhle", OleDbType.VarChar).Value = txtCanhLe.Text;
    cmd.Parameters.Add("@loaihopdong", OleDbType.VarChar).Value = cboLoaiHopDong.Text;
    cmd.Parameters.Add("@diachi", OleDbType.VarChar).Value = rtbDiaChi.Text;
    cmd.Parameters.Add("@hinh", OleDbType.VarChar).Value = strHinh;
    cmd.Parameters.Add("@mahv", OleDbType.VarChar).Value = txtMahv.Text;
    */
    cmd.ExecuteNonQuery();
    // Trả tài nguyên
    cmd.Dispose();
    //Load lai du lieu
    HienThi();
    MessageBox.Show("Cập nhật dữ liệu thành công", "Thông báo!");
    }
    Sửa lại như sau thử xem
    Visual C# Code:
    1. update ="UPDATE tblHocVien SET ngaynhaptruong=#"+ngaynhaptruong+"# WHERE mahv='"+txtMahv.Text+"'";
    Trong access sql , kiểu date time phải đóng ngoặc bởi dấu "#"
    Đã được chỉnh sửa lần cuối bởi khoaph : 30-08-2019 lúc 02:28 PM.

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn