Page 4 of 9

Re: VB.Net và Access Database

Posted: Sat 23/01/2010 11:03 pm
by thuyan1990
Hình như 9 xác nó là type varChar :D

Re: VB.Net và Access Database

Posted: Mon 25/01/2010 5:37 pm
by xuanquy_th
Nhìn vào tham số đầu vào thì bạn biết tại sao mình lại nói nó chỉ nhận lệnh thuộc loại Select.
Chỉ cần bạn đọc kỹ các ví dụ mình đưa là bạn sẽ hiểu tại sao.

vietteiv
Đã bao giờ chạy lệnh kết hợp chưa?

Re: VB.Net và Access Database

Posted: Tue 16/03/2010 3:06 pm
by volcano2409
Cho em hỏi làm sao có thể Add Field Name vào Combobox dc vậy anh !

Re: VB.Net và Access Database

Posted: Tue 16/03/2010 4:47 pm
by xuanquy_th
  1. cbo.DataSource = nguồn dữ liệu
  2. cbo.ValueMember = Field nhận trả giá trị
  3. cbo.DisplayMember = Field hiển thị giá trị

Re: VB.Net và Access Database

Posted: Fri 19/03/2010 12:02 pm
by volcano2409
Cho em hỏi them tí ạ !

Khi mình thêm một Field rồi ! Nhưng lại phải thoát ra rồi vao lại nó mới Cập nhập Data cho combobox !
Vậy có cách nào ko cần phải thoát ra nhưng vẫn cập nhập dc ?

Re: VB.Net và Access Database

Posted: Sat 20/03/2010 9:29 am
by manhhung87
đoạn code load data vào combobox bạn để riểng ra một thủ tục khi. Khi bạn cập nhật xong csdl hay thay đổi gì gì đó, bạn chỉ cận chạy lại cái thủ tục đó.

Re: VB.Net và Access Database

Posted: Mon 05/04/2010 6:29 pm
by jang
ai giúp xem cho em cái phần update nó cứ báo lỗi Syntax error in UPDATE statement.


Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim row As DataRow = dt.Select("MaHang = '" & txtMahang.Text & "'")(0)
row.BeginEdit()
row("TenHang") = txtTenhang.Text
row("SoLuong") = txtSoluong.Text
row("MaKho") = txtMakho.Text
row.EndEdit()
frmqldulieu.DataGridView1.DataSource = dt
Dim commandUpdate As New OleDbCommand()
commandUpdate.Connection = con
commandUpdate.CommandType = CommandType.Text
commandUpdate.CommandText = "Update Hanghoa Set TenHang=@TenHang, SoLuong=@SoLuong, MaKho=@MaKho, Where MaHang=@MaHang"
commandUpdate.Parameters.Add("@TenHang", OleDbType.VarChar, 100, "TenHang")
commandUpdate.Parameters.Add("@SoLuong", OleDbType.Numeric, 50, "SoLuong")
commandUpdate.Parameters.Add("@MaKho", OleDbType.VarChar, 50, "MaKho")
commandUpdate.Parameters.Add("@MaHang", OleDbType.VarChar, 50, "MaHang")
da.UpdateCommand = commandUpdate
da.Update(dt)
End Sub

Re: VB.Net và Access Database

Posted: Mon 19/04/2010 10:45 pm
by zippo66

Code: Select all

 Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim row As DataRow = dt.Select("Msgv='" & TextBox1.Text & "'")(0)
        'Update row
        row.BeginEdit()
        row("Msgv") = TextBox1.Text
        row("Tengv") = TextBox2.Text
        row("Sodienthoai") = TextBox3.Text
        row("Diachi") = TextBox4.Text
        row.EndEdit()
        'Tao command để update sự thay đổi trên vào file data nguồn
        Dim commandUpdate As New OleDbCommand()
        commandUpdate.Connection = con
        commandUpdate.CommandType = CommandType.Text       
        commandUpdate.CommandText = "Update Giaovien Set Msgv=@Msgv, Tengv=@Tengv, Sodienthoai=@Sodienthoai, Diachi=@Diachi  Where Msgv=@Msgv"
     
        commandUpdate.Parameters.Add("@Msgv", OleDbType.VarChar, 20, "Msgv")
        commandUpdate.Parameters.Add("@Tengv", OleDbType.VarChar, 20, "Tengv")
        commandUpdate.Parameters.Add("@Sodienthoai", OleDbType.Numeric, 20, "Sodienthoai")
        commandUpdate.Parameters.Add("@Diachi", OleDbType.VarChar, 20, "Diachi")
   
        da.UpdateCommand = commandUpdate
       
        da.Update(dt)

    End Sub

Các huynh có thể chỉ giáo giúp e được k ạ ?
Trong Database có 4 trường : Msgv , Tengv , Sodienthoai , Diachi
E muốn update mỗi khi chỉnh sửa trong datagrid nhưng khi F5 e bị báo lỗi : Cannot find colums [Msgv]
mặc dù trong Database e có rồi và có tên là Msgv !
E đang k biết cách chữa !
Mong các huynh chỉ giáo e với !!!!
E nghĩ nó chưa tìm được khóa chính nhưng e chưa biết sửa kiểu gì nữa ạ

Re: VB.Net và Access Database

Posted: Tue 20/04/2010 9:53 am
by tungcan5diop
lỗi này bạn tìm ngay trong chủ để này hoặc tìm trong forum nhé,lúc trước cũng đã có mem bị như bạn vậy đó,bạn chịu khó tìm nhé.
mình chỉ chú ý bạn cái này thôi:trong nguồn dữ liệu mà bạn đổ cho nguồn
  1. Dim row As DataRow = dt.Select("Msgv='" & TextBox1.Text & "'")(0)

thì bạn xem câu truy vấn của bạn đã select cái cột MSGV chưa.
vd:
nếu bạn viết
[sql]select tengv,namsinh from dt_giaovien[/sql]

[vbnet]Dim row As DataRow = dt.Select("Msgv='" & TextBox1.Text & "'")(0)[/vbnet]
thì nó sẽ báo lỗi như bạn đã nêu
..nếu bạn làm
[sql]select msgv, tengv,namsinh from dt_giaovien[/sql]
thì nó sẽ ko báo lỗi nữa.

Re: VB.Net và Access Database

Posted: Tue 20/04/2010 10:08 am
by zippo66
Cảm ơn anh. E đã tìm nhưng các câu trả lời đều k rõ .
A có thể xem qua code toàn bài của e được k ạ ?
E chưa hiểu lắm.
Vì nếu như thế , tức là ở câu select ở ngay trong button này hay câu nào ạ. ?
Cảm ơn anh rất nhiều

Code: Select all

Imports System.Data
Imports System.Data.OleDb
Public Class Form1
    Dim con As New OleDbConnection
    Dim dt As New DataTable("Giaovien")
    Dim da As New OleDbDataAdapter()
        Private Sub ketnoi()
        Dim str As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & Application.StartupPath & "\dataBTL.mdb;"
        con = New OleDbConnection(str)
        con.Open()
    End Sub
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'TODO: This line of code loads data into the 'DataBTLDataSet1.Giaovien' table. You can move, or remove it, as needed.
        Me.GiaovienTableAdapter.Fill(Me.DataBTLDataSet1.Giaovien)
        ketnoi()
       
    End Sub


    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        ketnoi()
        Dim command As New OleDbCommand()
        command.Connection = con
        command.CommandType = CommandType.Text
        command.CommandText = "Select * from Giaovien"
        da.SelectCommand = command
        da.Fill(dt)
        DataGridView1.DataSource = dt
        TextBox1.DataBindings.Add("Text", dt, "Msgv") ' Ở đây ta cần binding textbox txtSTT với giá trị Text ở cột STT của Table
        TextBox2.DataBindings.Add("Text", dt, "Tengv")
        TextBox3.DataBindings.Add("Text", dt, "Sodienthoai")
        TextBox4.DataBindings.Add("Text", dt, "Diachi")


    End Sub

   
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        ketnoi()

        Dim row As DataRow = dt.Select("Msgv='" & TextBox1.Text & "'")(0)
        row.BeginEdit()
        row("Msgv") = TextBox1.Text
        row("Tengv") = TextBox2.Text
        row("Sodienthoai") = TextBox3.Text
        row("Diachi") = TextBox4.Text
        row.EndEdit()
        Dim commandUpdate As New OleDbCommand()
        Try
            commandUpdate.Connection = con
            commandUpdate.CommandType = CommandType.Text         'SQL for Update
            commandUpdate.CommandText = "Update Giaovien Set Msgv=@Msgv, Tengv=@Tengv, Sodienthoai=@Sodienthoai, Diachi=@Diachi  Where Msgv=@Msgv"

        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.Exclamation, "Error")
        End Try
        commandUpdate.Parameters.Add("@Msgv", OleDbType.VarChar, 20, "Msgv")
        commandUpdate.Parameters.Add("@Tengv", OleDbType.VarChar, 20, "Tengv")
        commandUpdate.Parameters.Add("@Sodienthoai", OleDbType.Numeric, 20, "Sodienthoai")
        commandUpdate.Parameters.Add("@Diachi", OleDbType.VarChar, 20, "Diachi")
        Dim a As New OleDbCommandBuilder(da)
        da.Update(dt)

    End Sub

   
End Class

Re: VB.Net và Access Database

Posted: Tue 20/04/2010 10:38 am
by tungcan5diop
gửi cái project của bạn lên đây đi,mình coi cho
trong câu:
Select * from Giaovien-->bạn đừng ghi select *,ghi hết tất cả các trường ra.

Re: VB.Net và Access Database

Posted: Tue 20/04/2010 10:56 am
by zippo66
Đây là project và database của e đấy a.
Mong a giúp đỡ

Re: VB.Net và Access Database

Posted: Tue 20/04/2010 11:26 am
by tungcan5diop
mình ko mở được(bạn xài 2008,mình xài 2005)
nhưng coi qua code thì thấy:khi bạn bấm Button2 thì bạn sẽ lọc dữ liệu và khi đó sẽ tiến hành lưu,còn Button1 có nhiệm vụ connect tới database,đổ dữ liệu vào DataGridView(đồng thời đẩy dữ liệu vào datatable dt-nơi mà bạn sẽ lọc dữ liệu..vậy cho nên,khi bạn bấm Button2 mà chưa bấm Button1 thì sẽ bị lỗi như bạn nói,đến giờ bạn hiểu vì sao mà nó báo lỗi là ko có MSGV khi bạn bấm Button2 chưa?
cách khắc phuc bấm Button1 rồi mới cho hiện Button2,tùy bạn xử lý...

Re: VB.Net và Access Database

Posted: Tue 20/04/2010 11:46 am
by zippo66
vậy a ơi. cho e hỏi đoạn code datablinding của e có vấn đề j k ạ ? Nút update của e có hiệu lực trên mã GV đúng k ạ ? Vậy e muốn update toàn bộ columns thì như nào ạ ? E chưa rành về Vb.net lắm. Đây là tự học nên còn rất nhiều thứ phải học hỏi. MOng a giúp đỡ .

Re: VB.Net và Access Database

Posted: Tue 20/04/2010 11:49 am
by zippo66
Anh ơi .E còn 1 việc nữa đó là : khi update như thế , thì update vào dataset hay trực tiếp vào database ạ ? e đã thử nhưng k save được update trong database a ạ ?

Re: VB.Net và Access Database

Posted: Fri 23/04/2010 9:43 am
by volcano2409
Cái code của Anh Tuyen ấy ! Không thể del data khi trong database ko còn một Row nào ! Ai chỉ em cách fix cái ạ !

Re: VB.Net và Access Database

Posted: Fri 23/04/2010 10:19 am
by vietteiv
volcano2409 wrote:Cái code của Anh Tuyen ấy ! Không thể del data khi trong database ko còn một Row nào ! Ai chỉ em cách fix cái ạ !

khi database ko còn 1 row nào thì lấy gì để del nữa hả bạn!!!

Re: VB.Net và Access Database

Posted: Fri 23/04/2010 8:35 pm
by zippo66
các anh ơi , cho e hỏi , e vẫn bị báo lỗi là : Cannot find columns !!! e chưa làm được , huynh nào có 1 bài về như thế, 1 bài trọn vẹn có thể up lên dể e tham khảo được k ạ ? ví dụ thôi ạ :( . E gà quá :((

Re: VB.Net và Access Database

Posted: Sun 13/06/2010 7:23 pm
by volcano2409
vietteiv wrote:
volcano2409 wrote:Cái code của Anh Tuyen ấy ! Không thể del data khi trong database ko còn một Row nào ! Ai chỉ em cách fix cái ạ !

khi database ko còn 1 row nào thì lấy gì để del nữa hả bạn!!!


Không anh , ý em là trước đó trong data có dữ liệu , Nếu xóa hết các dữ liệu trong đó và nhấn nút Update sẽ báo lỗi
Ý em ở đây là mún xóa hết dữ liệu đi !

Re: VB.Net và Access Database

Posted: Tue 13/07/2010 7:43 pm
by bigboy83
cho em hỏi làm sao để cập nhật trực tiếp từ datagirdview mà ko cần xài textbox, chỉ cần nhập rồi nó tự cập nhật :( em tìm ko có

mong các anh chỉ giúp em

rất cảm ơn