Kagome 0 Report post Posted November 21, 2012 Salam dan hai...sy nak tanya,macam mana nak buat sambungan dari visual basic ke mysql...saya menngunakan RFID untuk dapatkan no id,no id y discan akan dipaparkan pada textbox dalam visual basic....persoalan disini,macam mana pula untuk saya pindahkan id dari textbox itu kedalam mysql...harap dapat membantu...sekian terima kasih... Quote Share this post Link to post Share on other sites
Chuki2 32 Report post Posted November 22, 2012 Salam... selamat datang ke putera.com... hehe.... Ok pertama sekali, sekiranya [b]BELUM[/b] ada [b]ODBC[/b] untuk [b]MYSQL[/b] hendak perlu didownload disini [url="http://dev.mysql.com/downloads/connector/net/"]http://dev.mysql.com/downloads/connector/net/[/url] Setelah download dan juga install, dalam project vb.net sila pilih [b]PROJECT[/b] > [b]ADD REFERENCE[/b] > [b]BROWSER[/b] > Dan buka file [b]C:\Program Files\MySQL\MySQL Connector Net 6.5.4\Assemblies\v2.0[/b] Kemudian, ada 4 file akan keluar. Jadi bro kena ADD [b]MySql.Data.dll..[/b]Tunggu hingga dia tambah.. Setelah selesai, kita hendaklah buat test connection terlebih dahulu untuk pastikan tiada masalah. Pertama sekali dalam baris atas dalam coding kena tulis [CODE] Imports MySql.Data.MySqlClient [/CODE] Kemudian, kita kena buat variable untuk MySql Connection. Contohnya [CODE] Dim MysqlConn As MySqlConnection [/CODE] Dan kemudian kita buat object untuk my sql connection [CODE] MysqlConn = New MySqlConnection() [/CODE] Selepas itu, bro leh letak connection string untuk menhubungi pengkalan data MySql. Contoh [CODE] MysqlConn.ConnectionString = "server=localhost; user id=root; password=; database=test" [/CODE] Dan kita leh test connection. Contohnya [CODE] Try MysqlConn.Open() MessageBox.Show("Berjaya menyambung ke databases.") MysqlConn.Close() Catch myerror As MySqlException MessageBox.Show("Maaf sambungan ke database gagal: " & myerror.Message) Finally MysqlConn.Dispose() End Try [/CODE] Jadi code untuk keseluruhannya adalah [CODE] Imports MySql.Data.MySqlClient Public Class Form1 Private Sub btnTestConnection_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim MysqlConn As MySqlConnection MysqlConn = New MySqlConnection() MysqlConn.ConnectionString = "server=localhost; user id=root; password=; database=test" Try MysqlConn.Open() MessageBox.Show("Connection to Database has been opened.") MysqlConn.Close() Catch myerror As MySqlException MessageBox.Show("Cannot connect to database: " & myerror.Message) Finally MysqlConn.Dispose() End Try End Sub [/CODE] Jadi macam mana nak add textbox ke mysql? sonang jer... Try code ini.. Sorry kalau ada jumpa error... [CODE] Private Sub addToMySql_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles addToMySql.Click Dim MysqlConn As MySqlConnection Dim MysqlCommand As New MySqlCommand Dim queryNoID As String MysqlConn = New MySqlConnection() MysqlConn.ConnectionString = "server=localhost; user id=root; password=; database=test" queryNoID = "INSERT INTO tbl_noid (noID) VALUES (@noID);" Try MysqlCommand.Connection = MysqlConn MysqlCommand.CommandText = queryNoID MysqlCommand.Parameters.AddWithValue("@noID", TextBoxNoID.Text) MysqlConn.Open() MysqlCommand.ExecuteNonQuery() MysqlConn.Close() MessageBox.Show("Rekod disimpan") Catch myerror As MySqlException MessageBox.Show("Gagal menyimpan rekod: " & Environment.NewLine & myerror.Message) Finally MysqlConn.Dispose() End Try End Sub [/CODE] Happy programming... Quote Share this post Link to post Share on other sites
Kagome 0 Report post Posted November 23, 2012 Terima kasih Bro Chuki2 . . tutorial y betul2 complete,mudah difahami dan teramat bguna buat sy... semua connection sudah boleh,maaf sebab xnyatakan sbnarnya data dari textbox dimasukan terus kepada database tanpa menekan button(sy dah fix)...permasalahan disini macam mna nak bg setiap data y dimasukan adalah berlainan kerana [contoh] untuk scan y pertama di textbox paparkan id "1112" dan id "1112" akan disimpan didalam table dan apabila untuk scan y ke-2 paparan texbox akan papar id "1112","1113" ini bmakna pada row baharu akan terus dimasukan data 1112 dan 1113 tadi... dan bukannya data 1113 sahaja... Quote Share this post Link to post Share on other sites
Chuki2 32 Report post Posted November 24, 2012 Owh. kenapa nak pening2 pakai text box.. Bro boleh cuba pakai Data Gird View, dan kemudian record dari data grid terus masuk kedalam my sql... Jadi tiap kali orang scan, dia akan tambah pada ruang baru dalam data grid view. Dan tiap kali nak simpan data, bro kena buat for each setiap record dalam data grid view INSERT kepada MySQL... Happy Programming Quote Share this post Link to post Share on other sites
Kagome 0 Report post Posted November 24, 2012 (edited) kiranya textbox tu kena tukar dengan Data Grid View kan....hmmmm da cuba buat tpi still mcm xjadi je....sebenarnya sy nak buat mcm ni : sy ada table ni : Table = test ----------------- Baki | Rfidid ----------------- 1 | 300 | 11111 2 | 250 | 1112 ----------------- #bila sy scan card dan sekiranya no id y dscan ialah "11111" maka nilai baki tu akan terus melalui proses penolakan dengan nilai 50... Edited November 24, 2012 by Kagome Quote Share this post Link to post Share on other sites
Kagome 0 Report post Posted November 24, 2012 ini adalah coding untuk rfid...bila card scan id akan dipaparkan pada textbox1....untuk tukar kpada grid view ap y harus sy lakukan....?? mohon pertolongan... Public Class Form1 Dim WithEvents myComPort As New System.IO.Ports.SerialPort Dim data As String Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click ComboBox1.Enabled = True Button2.Enabled = False Button1.Enabled = True RadioButton1.Enabled = False RadioButton2.Checked = True myComPort.Close() End Sub Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click If Not ComboBox1.SelectedItem Is Nothing Then If Not myComPort.IsOpen Then Try myComPort.BaudRate = 9600 myComPort.PortName = ComboBox1.SelectedItem myComPort.Parity = IO.Ports.Parity.None myComPort.DataBits = 8 myComPort.StopBits = IO.Ports.StopBits.One myComPort.Handshake = IO.Ports.Handshake.None myComPort.ReadTimeout = 3000 myComPort.ReceivedBytesThreshold = 1 myComPort.DtrEnable = True myComPort.Open() ComboBox1.Enabled = False Button1.Enabled = False Button2.Enabled = True RadioButton1.Enabled = True RadioButton1.Checked = True Catch ex As Exception MsgBox("Error Opening COM Port", MsgBoxStyle.Critical) End Try End If Else MsgBox("Select a valid COM Port", MsgBoxStyle.Information) End If End Sub Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load For Each portName As String In My.Computer.Ports.SerialPortNames ComboBox1.Items.Add(portName) Next CheckBox1.Checked = True If Not myComPort.IsOpen Then Button2.Enabled = False ComboBox1.Text = ComboBox1.Items(0) RadioButton1.Enabled = False RadioButton2.Checked = True Else Button1.Enabled = False ComboBox1.Text = myComPort.PortName RadioButton2.Checked = True End If End Sub Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged myComPort.DtrEnable = True End Sub Private Sub RadioButton2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton2.CheckedChanged myComPort.DtrEnable = False End Sub Private Sub DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles myComPort.DataReceived TextBox1.Invoke(New myDelegate(AddressOf updateTextBox), New Object() {}) End Sub Public Delegate Sub myDelegate() Public Sub updateTextBox() data = data + myComPort.ReadExisting() If Len(data) = 12 Then TextBox1.Text = TextBox1.Text + Microsoft.VisualBasic.Mid(data, 2, 11) & vbLf myComPort.DtrEnable = False RadioButton1.Enabled = False RadioButton2.Checked = True If CheckBox1.Checked = True Then Beep() End If Dim timeOut As DateTimeOffset = Now.AddMilliseconds(1500) Do Application.DoEvents() Loop Until Now > timeOut data = myComPort.ReadExisting() myComPort.DiscardInBuffer() data = "" myComPort.DtrEnable = True RadioButton1.Enabled = True RadioButton1.Checked = True End If End Sub Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click TextBox1.Text = "" End Sub End Class Quote Share this post Link to post Share on other sites
Chuki2 32 Report post Posted November 25, 2012 [CODE] Private Sub DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles myComPort.DataReceived TextBox1.Invoke(New myDelegate(AddressOf updateTextBox), New Object() {}) End Sub Public Delegate Sub myDelegate() Public Sub updateTextBox() data = data + myComPort.ReadExisting() If Len(data) = 12 Then TextBox1.Text = TextBox1.Text + Microsoft.VisualBasic.Mid(data, 2, 11) & vbLf myComPort.DtrEnable = False RadioButton1.Enabled = False RadioButton2.Checked = True If CheckBox1.Checked = True Then Beep() End If Dim timeOut As DateTimeOffset = Now.AddMilliseconds(1500) Do Application.DoEvents() Loop Until Now > timeOut data = myComPort.ReadExisting() myComPort.DiscardInBuffer() data = "" myComPort.DtrEnable = True RadioButton1.Enabled = True RadioButton1.Checked = True End If End Sub [/CODE] Leh cuba macam ini [CODE] DataGridView1.Columns(0).Name = "ID CARD" DataGridView1.Rows.Add(tbNoID.TEXT) [/CODE] Pada code tiap kali masukkan ID pada texbox... Quote Share this post Link to post Share on other sites