 |
|
สอบถามปัญหาคำสั่ง เกี่ยวกับการเชื่อต่อฐาน MS SQL 2008 มันติดตรงนี้อะครับ da.Fill(ds, "MemberType") |
|
 |
|
|
 |
 |
|
เขียนถูกครับ แต่การต่อ String ของคุณผิดน่ะครับ เมื่อคุณลองต่อ String และ Debug ดูจะเห็นค่าคำสั่ง SQL มันติดกันยาวววว โดยไม่เว้นวรรคน่ะครับ เพราะฉะนั้นควรจะวรรค ในแต่ละบบรรทัดก่อนใส่เครื่องหมาย "
|
 |
 |
 |
 |
Date :
2010-11-16 10:37:45 |
By :
webmaster |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ตรงไหนหรอ ครับ ผมยังไม่เข้าใจ มือใหม่อยู่ครับ ขออภัย
|
 |
 |
 |
 |
Date :
2010-11-16 11:57:19 |
By :
pisansri |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ตรง SQL น่ะครับ คราวหลังให้ Copy Code มาด้วย น่ะครับ จะได้ตอบกลับง่ายหน่อย

|
 |
 |
 |
 |
Date :
2010-11-16 12:02:14 |
By :
webmaster |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Code (VB.NET)
Option Explicit On
Option Strict On
Imports System.Data
Imports System.Data.SqlClient
Imports System.Globalization
Imports System.Drawing.Printing
Public Class frmMember
Inherits System.Windows.Forms.Form
Dim Conn As SqlConnection = New SqlConnection
Dim da As SqlDataAdapter
Dim ds As DataSet = New DataSet
Dim dt As DataTable
Dim Tody As Date
Dim CurrentRecord As Integer = 0
Dim Recordcount As Integer = 0
Dim UseFont As New Font("MS Sans Serif", 10)
Dim prDoc As PrintDocument = New PrintDocument
Private prDlg As PrintDialog = New PrintDialog
Dim ActionFlag As String = ""
Dim LastRevenueID As String = ""
Dim Dtflnfo As DateTimeFormatInfo
Dim IsFind As Boolean = False
Private Sub frmMember_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.WindowState = FormWindowState.Maximized
Cursor.Current = Cursors.WaitCursor
Dim strConn As String
strConn = "Data Source=.\SQLEXPRESS;Initial Catalog=Business Rule;Integrated Security=True"
'strConn = "Data Source=.\PARKCG;Initial Catalog=Business Rule;Integrated Security=True"
'strConn = "Data Source=.\SQLEXPRESS;AttachDbFilename='C:\Program Files\" & _
'"Microsoft SQL Server\MSSQL10.SQL SERVER\MSSQL\DATA\Business Rule.mdf';" & _
'"Integrated Security=True;Connect Timeout=30;User Instance=True"
With Conn
If .State = ConnectionState.Open Then .Close()
.ConnectionString = strConn
.Open()
End With
Dim sqlMemberType As String = " "
sqlMemberType = "SELECT MemberTypeID,MemberTypeName"
sqlMemberType &= "FROM MemberType"
sqlMemberType &= "ORDER BY MemberTypeID"
da = New SqlDataAdapter(sqlMemberType, Conn)
da.Fill(ds, "MemberType")
If ds.Tables("MemberType").Rows.Count <> 0 Then
With cboMemberType
.DataSource = ds.Tables("MemberType")
.DisplayMember = "MemberTypeName"
.ValueMember = "MemberTypeID"
End With
'ShowMemberDetail()
'FormatDataGridWithData()
End If
Dim sqlBranch As String = ""
sqlBranch = "SELECT*FROM Branch ORDER BY BranchID"
da.SelectCommand.CommandText = sqlBranch
da.Fill(ds, "Branch")
If ds.Tables("Branch").Rows.Count <> 0 Then
With cboSearchBranch
.DataSource = ds.Tables("Branch")
.DisplayMember = "BranchName"
.ValueMember = "BranchID"
End With
End If
With cboSearch
.Items.Add("รหัสสมาชิก")
.Items.Add("=ชื่อ-สกุล")
.SelectedIndex = 0
End With
'LockAllCtrl()
Today = Date.Now
'dtpAdmitDate.Value = Today
'
'Dtflnfo =DateTime format Info.Invaris
End Sub
End Class
|
 |
 |
 |
 |
Date :
2010-11-16 13:16:40 |
By :
pisansri |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ผิดตรงไหนครับ
|
 |
 |
 |
 |
Date :
2010-11-16 13:17:26 |
By :
pisansri |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
มันเว้นยังไงครับ
|
 |
 |
 |
 |
Date :
2010-11-16 14:03:15 |
By :
pisansri |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|

|
 |
 |
 |
 |
Date :
2010-11-16 14:11:03 |
By :
base3000 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
นี่แหละครับที่อยากถามมาก แต่ไม่มีคนตอบให้เข้าใจได้สักที
ว่ามัน Debug ยังไง ถึงเห็นว่ามันทำอะไรอยู่อ่ะครับ
|
 |
 |
 |
 |
Date :
2010-11-16 14:11:36 |
By :
zixsenz |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ได้เเล้วครับ ขอบคุณครับ
|
 |
 |
 |
 |
Date :
2010-11-16 14:17:42 |
By :
pisansri |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
มันติดตรงนี้ครับ มันผิดที่ไหนครับ

|
 |
 |
 |
 |
Date :
2010-11-16 16:55:56 |
By :
pisansri |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Option Explicit On
Option Strict On
Imports System.Data
Imports System.Data.SqlClient
Imports System.Globalization
Imports System.Drawing.Printing
Public Class Land
Inherits System.Windows.Forms.Form
Dim Conn As SqlConnection = New SqlConnection
Dim da As SqlDataAdapter
Dim ds As DataSet = New DataSet
Dim dt As DataTable
Dim Tody As Date
Dim CurrentRecord As Integer = 0
Dim Recordcount As Integer = 0
Dim UseFont As New Font("MS Sans Serif", 10)
Dim prDoc As PrintDocument = New PrintDocument
Private prDlg As PrintDialog = New PrintDialog
Dim ActionFlag As String = ""
Dim LastRevenueID As String = ""
Dim Dtflnfo As DateTimeFormatInfo
Dim IsFind As Boolean = False
Private Sub Land_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim strConn As String
strConn = "Data Source=.\SQLEXPRESS;Initial Catalog=SSPEGIS;Integrated Security=True"
'Dim dbConn As OleDbConnection = New OleDbConnection( _
'"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\db2.mdb")
With Conn
If .State = ConnectionState.Open Then .Close()
.ConnectionString = strConn
.Open()
End With
Dim sqlland As String = ""
sqlland = "SELECT LANDID FROM land ORDER BY LANDID"
da = New SqlDataAdapter(sqlland, Conn)
da.Fill(ds, "land")
If ds.Tables("land").Rows.Count <> 0 Then
'นำคอนโทรลเท็กซ์บ็อกซ์บนฟอร์มมาผูกกับข้อมูลในแต่ละฟีลด์ของ datatable
txtPARCEL_CODE.DataBindings.Add("Text", ds, "land.PARCEL_CODE")
txtTAMBON_TH.DataBindings.Add("Text", ds, "land.TAMBON_TH")
txtDISTRICT_TH.DataBindings.Add("Text", ds, "land.DISTRICT_TH")
txtPROVINCE_TH.DataBindings.Add("Text", ds, "land.PROVINCE_TH")
txtUTM_CODE.DataBindings.Add("Text", ds, "land.UTM_CODE")
txtUTM_NO.DataBindings.Add("Text", ds, "land.UTM_NO")
txtUTM_PAGE.DataBindings.Add("Text", ds, "land.UTM_PAGE")
'txtUSED_DESC.DataBindings.Add("Text", dtTable, "USED_DESC")
'txtLDOC_TYPE.DataBindings.Add("Text", dtTable, "LDOC_TYPE")
'txtL_UTILIZATION.DataBindings.Add("Text", dtTable, "L_UTILIZATION")
txtSURVEY_NO.DataBindings.Add("Text", ds, "land.SURVEY_NO")
'txtLDOC_NO.DataBindings.Add("Text", dtTable, "USED_DESC")
txtLAND_NO.DataBindings.Add("Text", ds, "land.LDOC_NO")
txtDOL_RAI.DataBindings.Add("Text", ds, "land.DOL_RAI")
txtDOL_NGAN.DataBindings.Add("Text", ds, "land.DOL_NGAN")
txtDOL_WA.DataBindings.Add("Text", ds, "land.DOL_WA")
txtTAXED_RAI.DataBindings.Add("Text", ds, "land.TAXED_RAI")
txtTAXED_NGAN.DataBindings.Add("Text", ds, "land.TAXED_NGAN")
txtTAXED_WA.DataBindings.Add("Text", ds, "land.TAXED_WA")
txtLANDID.DataBindings.Add("Text", ds, "land.LANDID")
End If
End Sub
Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click
Dim sqlupdate As String
'Dim sqladd As String
sqlupdate = "update product "
sqlupdate &= " set PARCEL_CODE = '" & txtPARCEL_CODE.Text & "',"
sqlupdate &= " TAMBON_TH= '" & txtTAMBON_TH.Text & "',"
sqlupdate &= " DISTRICT_TH= " & Val(txtDISTRICT_TH.Text) & ","
sqlupdate &= " PROVINCE_TH= " & Val(txtPROVINCE_TH.Text) & ""
sqlupdate &= " UTM_CODE = '" & txtUTM_CODE.Text & "'"
End Sub
End Class
|
 |
 |
 |
 |
Date :
2010-11-16 16:56:19 |
By :
pisansri |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ผมว่าอย่าเสียเวลาเขียน Code Binding TextBox กับ Data เลยครับ
ใช้ความสามารถของ Visual Stdio ดีกว่า
|
 |
 |
 |
 |
Date :
2010-11-16 17:07:30 |
By :
watcharop |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ลองดู Properties ของ Textbox ที่ชื่อ DataBinding
|
 |
 |
 |
 |
Date :
2010-11-16 17:11:48 |
By :
watcharop |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เวลา Select มีหนึ่ง Column ตารางมันก็เลยไม่รู้จะเอาอะไรมาให้ bind ซิครับ
เพราะมันมี Column ที่ชื่อว่า LANDID อันเดียว
แล้วเวลา bind นะ bind กับ BindingSource ดีกว่านะครับ มีเครื่องมือมากกว่า
Code (VB.NET)
Dim bin As New BindingSource(ds, "land")
แล้วเอา bin ไปใช้ เช่น
Code (VB.NET)
txtLANDID.DataBindings.Add("Text", bin, "LANDID")
|
ประวัติการแก้ไข 2010-11-16 19:01:05 2010-11-16 19:02:43
 |
 |
 |
 |
Date :
2010-11-16 18:55:25 |
By :
base3000 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Dim bin As New BindingSource(ds, "land") เเล้วต้องเอาอันนี้ไปไว้ตรงไหนครับ ขอโทษครับยังมือใหม่อยู่
|
 |
 |
 |
 |
Date :
2010-11-17 00:37:38 |
By :
pisansri |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ก็ต้อง Select มาจากหลายๆตารางครับ 
|
 |
 |
 |
 |
Date :
2010-11-17 09:05:48 |
By :
iheerman |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ผมขอแนะนำหนังสือให้ 2 เล่ม ซึ่งเป็นหนังสือที่ผมคิดว่าดี คือ
1. Visual Basic.net ของ Success media เล่มสีฟ้า เป็นพื้นฐานของ VB.net หนังสือเล่มอาจะเก่าไปหน่อย แต่เข้าใจง่ายกว่าเล่มอื่น (จากประสบการณ์ของผม แต่ทุกวันนี้ผมยังเปิดใช้มันอยู่) แต่ไม่รู้จะมีขายอยู่หรือเปล่า
2. คัมภีร์การใช้ Visual Basic 2005 ฉบับสมบูรณ์ ของ WROX พิมพ์โดย ซีเอ็ด เล่มนี้ควรอ่านเมื่อบรรลุเล่มแรก เพราะค่อนข้าง Advance มาก และมี CD ที่แถมมา มีข้อมูลอีกเพียบ
สุดท้ายนี้ขอให้พบกับความสำเร็จในการเป็นโปรแกรมเมอร์นะครับ
|
 |
 |
 |
 |
Date :
2010-11-17 09:07:00 |
By :
base3000 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ถ้าคุณยัง Binding อย่างนี้
txtLAND_NO.DataBindings.Add("Text", ds, "land.LDOC_NO")
txtDOL_RAI.DataBindings.Add("Text", ds, "land.DOL_RAI")
txtDOL_NGAN.DataBindings.Add("Text", ds, "land.DOL_NGAN")
txtDOL_WA.DataBindings.Add("Text", ds, "land.DOL_WA")
txtTAXED_RAI.DataBindings.Add("Text", ds, "land.TAXED_RAI")
txtTAXED_NGAN.DataBindings.Add("Text", ds, "land.TAXED_NGAN")
txtTAXED_WA.DataBindings.Add("Text", ds, "land.TAXED_WA")
txtLANDID.DataBindings.Add("Text", ds, "land.LANDID")
ผมว่าคุณน่าจะ
1. ซื้อหนังสือมาอ่าน เพิ่มเติมความรู้พื้นฐาน
2. อยู่แถวพระโขนงรึเปล่า มาหาผมซิ จะแนะนำวิธีเบื้องต้น ให้ว่าเค้าทำกันอย่างไร ไม่คิดตังค์
เชื่อผมเถอะ เพื่อความสุขในการเขียนโปรแกรม

|
ประวัติการแก้ไข 2010-11-17 14:42:10
 |
 |
 |
 |
Date :
2010-11-17 14:32:20 |
By :
watcharop |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอบคุณครับ
เเต่ผมอยู่ขอนแก่น นั่นสิครับไกลมาก
ผมก้พึงหัดเขียน คราบ อ่านหนังสือผมก้อ่านไม่รู้เรื่อง ได้เเต่ หาโค๊ด จากโปรแกรม หลาย หลายตัว มาดู กัน
เย็นนี้ ผมว่าจะไปอ่านหนังสือให้เยอะเยอะ จริงๆพื้นฐาน การเขียนผมไม่มี หนังสือผมก้มีหลายเล่มเเล้วครับเเต่อ่านไม่ค่อยเข้าใจเท่าไหร่ ว่าจะหาชื้อมาอีกอยู่
เเต่เลิกงานดึกเลยไม่ได้ไป ครับ ผมอยากไดอีเมล์ พวกพี่ ไว้เเชท กัน จังเลยครับ
|
 |
 |
 |
 |
Date :
2010-11-17 19:57:17 |
By :
pisansri |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Option Explicit On
Option Strict On
Imports System.Data
Imports System.Data.SqlClient
Imports System.Globalization
Imports System.Drawing.Printing
Public Class Land
Inherits System.Windows.Forms.Form
Dim Conn As SqlConnection = New SqlConnection
Dim da As SqlDataAdapter
Dim product As OleDb.OleDbCommand
Dim add_state As Boolean = False
Dim ds As DataSet = New DataSet
Dim dt As DataTable
Dim Tody As Date
Dim CurrentRecord As Integer = 0
Dim Recordcount As Integer = 0
Dim UseFont As New Font("MS Sans Serif", 10)
Dim prDoc As PrintDocument = New PrintDocument
Private prDlg As PrintDialog = New PrintDialog
Dim strConnString, strSQL As String
Dim objCmd As New SqlCommand
Dim objConn As New SqlConnection
Dim dspro As New DataSet
Dim dtSet As DataSet = New DataSet 'ประกาศตัวแปรแทนออบเจ็คหรือ Instance จากคลาส DataSet
Dim dtTable As DataTable 'ประกาศตัวแปรแทนออบเจ็คหรือ Instance จากคลาส DataTable
Dim objCurrencyMgr As CurrencyManager 'ประกาศตัวแปรแทนออบเจ็คหรือ Instance จากคลาส CurrencyManager
Dim currRecPos As Integer 'ประกาศตัวแปรเก็บตำแหน่งเรคอร์ดปัจจุบัน
'ประกาศตัวแปรแสดงโหมดการทำงาน ถ้าอยู่ในโหมดเพิ่มเรคอร์ดจะมีค่าเป็น True ถ้าอยู่ในโหมดแก้ไขจะมีค่าเป็น False
Dim addNewMode As Boolean
Dim fdName As String 'ประกาศตัวแปรเก็บชื่อฟีลด์ในเทเบิล Contacts
Dim sHelpFile As String
Dim ActionFlag As String = ""
Dim LastRevenueID As String = ""
Dim Dtflnfo As DateTimeFormatInfo
Dim IsFind As Boolean = False
Private Sub Land_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim strConn As String
strConn = "Data Source=.\SQLEXPRESS;Initial Catalog=SSPEGIS;Integrated Security=True"
With Conn
If .State = ConnectionState.Open Then .Close()
.ConnectionString = strConn
.Open()
End With
Dim sqlland As String = ""
sqlland = "SELECT * FROM land ORDER BY LANDID"
da = New SqlDataAdapter(sqlland, Conn)
da.Fill(ds, "land")
If ds.Tables("land").Rows.Count <> 0 Then
Dim bin As New BindingSource(ds, "land")
'นำคอนโทรลเท็กซ์บ็อกซ์บนฟอร์มมาผูกกับข้อมูลในแต่ละฟีลด์ของ datatable
txtLANDID.DataBindings.Add("Text", bin, "LANDID")
txtPARCEL_CODE.DataBindings.Add("Text", bin, "PARCEL_CODE")
txtTAMBON_TH.DataBindings.Add("Text", bin, "TAMBON_TH")
txtDISTRICT_TH.DataBindings.Add("Text", bin, "DISTRICT_TH")
txtPROVINCE_TH.DataBindings.Add("Text", bin, "PROVINCE_TH")
txtUTM_CODE.DataBindings.Add("Text", bin, "UTM_CODE")
txtUTM_NO.DataBindings.Add("Text", bin, "UTM_NO")
txtUTM_PAGE.DataBindings.Add("Text", bin, "UTM_PAGE")
'txtUSED_DESC.DataBindings.Add("Text", bin, "USED_DESC")
'txtLDOC_TYPE.DataBindings.Add("Text", bin, "LDOC_TYPE")
'txtL_UTILIZATION.DataBindings.Add("Text", bine, "L_UTILIZATION")
txtSURVEY_NO.DataBindings.Add("Text", bin, "SURVEY_NO")
'txtLDOC_NO.DataBindings.Add("Text", bin, "USED_DESC")
txtLAND_NO.DataBindings.Add("Text", bin, "LDOC_NO")
txtDOL_RAI.DataBindings.Add("Text", bin, "DOL_RAI")
txtDOL_NGAN.DataBindings.Add("Text", bin, "DOL_NGAN")
txtDOL_WA.DataBindings.Add("Text", bin, "DOL_WA")
txtTAXED_RAI.DataBindings.Add("Text", bin, "TAXED_RAI")
txtTAXED_NGAN.DataBindings.Add("Text", bin, "TAXED_NGAN")
txtTAXED_WA.DataBindings.Add("Text", bin, "TAXED_WA")
End If
End Sub
Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click
Dim strConn As String
Dim sqlupdate As String
Dim sqladd As String
sqlupdate = "update land "
sqlupdate &= " set PARCEL_CODE = '" & txtPARCEL_CODE.Text & "',"
sqlupdate &= " TAMBON_TH= '" & txtTAMBON_TH.Text & "',"
sqlupdate &= " DISTRICT_TH= " & Val(txtDISTRICT_TH.Text) & ","
sqlupdate &= " PROVINCE_TH= " & Val(txtPROVINCE_TH.Text) & ""
sqlupdate &= " UTM_CODE = '" & txtUTM_CODE.Text & "'"
sqlupdate &= " where LANDID = '" & txtLANDID.Text & "'"
sqladd = "insert into land(LANDID,PARCEL_CODE, TAMBON_TH , DISTRICT_TH,PROVINCE_TH)"
sqladd &= " values ('" & txtLANDID.Text & "',"
sqladd &= " '" & txtPARCEL_CODE.Text & "',"
sqladd &= "'" & txtTAMBON_TH.Text & "',"
sqladd &= "" & Val(txtDISTRICT_TH.Text) & ","
sqladd &= "" & Val(txtPROVINCE_TH.Text) & ")"
With Conn
If .State = ConnectionState.Open Then .Close()
.ConnectionString = strConn
.Open()
End With
product = New OleDb.OleDbCommand
With product
.CommandType = CommandType.Text
If add_state = True Then
.CommandText = sqladd
Else
.CommandText = sqlupdate
End If
.Connection = Conn
.ExecuteNonQuery()
End With
Catch ErrorToEdit As Exception
MessageBox.Show(ErrorToEdit.Message & sqladd, "ข้อผิดพลาด", MessageBoxButtons.OK, MessageBoxIcon.Error)
Exit Sub
End Try
add_state = False
MessageBox.Show("บันทึกข้อมูลเสร็จแล้ว ", "แจ้งให้ทราบ", MessageBoxButtons.OK, MessageBoxIcon.Information)
Call lock_object()
Call Show()
End Sub
Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdd.Click
addNewMode = True 'แสดงโหมดการทำงานแบบเพิ่มเรคอร์ดใหม่
currRecPos = objCurrencyMgr.Position 'เก็บตำแหน่งเรคอร์ดปัจจุบันใน datatable ไว้ที่ currRecPos
objCurrencyMgr.AddNew() 'เพิ่มเรคอร์ดใหม่ว่างๆ 1 เรคอร์ดใน datatable
EnabledReadWrite() 'ให้เท็กซ์บ็อกซ์ทั้งหมดแสดงข้อมูลแบบอ่านเขียนได้
txtLANDID.Focus()
End Sub
Private Sub btnFirst_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnFirst.Click
objCurrencyMgr.Position = 1
End Sub
Private Sub btnPrevious_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPrevious.Click
objCurrencyMgr.Position -= 1
End Sub
Private Sub btnNext_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNext.Click
objCurrencyMgr.Position += 1
End Sub
Private Sub btnLast_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLast.Click
objCurrencyMgr.Position = objCurrencyMgr.Count - 1
End Sub
Private Sub btndelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btndelete.Click
If dtTable.Rows.Count <= 0 Then
Exit Sub 'ถ้าเป็น datatable ว่าง ให้ออกจาก Procedure นี้
'ถ้าไม่ใช่ datatable ว่าง และผู้ใช้ยืนยันการลบ
ElseIf MessageBox.Show("ต้องการลบเรคอร์ดนี้ใช่หรือไม่?", "ยืนยันการลบ", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = vbYes Then
objCurrencyMgr.RemoveAt(objCurrencyMgr.Position) 'ให้ลบเรคอร์ดปัจจุบันออกจาก datatable
dtAdapter.Update(dtTable) 'และลบเรคอร์ดนี้ออกจากฐานข้อมูลด้วย
currRecPos = objCurrencyMgr.Position 'เก็บเรคอร์ดปัจจุบันบนฟอร์มไว้ที่ currRecPos
End If
If dtTable.Rows.Count = 0 Then 'ถ้าลบเรคอร์ดใน datatable จนหมด
DisabledReadWrite() 'ให้เท็กซ์บ็อกซ์ทั้งหมดแสดงข้อมูลแบบอ่านได้อย่างเดียว
End If
End Sub
Private Sub btnEdit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEdit.Click
If dtTable.Rows.Count <= 0 Then
Exit Sub 'ถ้าเป็น datatable ว่าง ให้ออกจาก Procedure นี้
Else 'ถ้าไม่ใช่ datatable ว่าง
addNewMode = False 'แสดงโหมดการทำงานแบบแก้ไขเรคอร์ด
EnabledReadWrite() 'ให้เท็กซ์บ็อกซ์ทั้งหมดแสดงข้อมูลแบบอ่านเขียนได้
currRecPos = objCurrencyMgr.Position 'เก็บเรคอร์ดปัจจุบันบนฟอร์มไว้ที่ currRecPos
txtLANDID.Focus() 'เลื่อนเคอร์เซอร์รับข้อมูลบนจอภาพไปที่ช่องชื่อ
End If
End Sub
End Class
|
 |
 |
 |
 |
Date :
2010-11-17 19:58:21 |
By :
pisansri |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ผมเอาโค๊ดมา ให้ดูตรงปุ่ม Save เเละปุ่มต่างๆ น่ะครับมันผิดตรงไหนหรอครับ ขอบคุณครับ
|
 |
 |
 |
 |
Date :
2010-11-17 20:01:06 |
By :
pisansri |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
แล้วจะค่อย ๆ ดูให้นะครับ ไปทีละอย่างละกัน
Inherits System.Windows.Forms.Form
บรรทัดนี้ไม่ต้องมีแล้ว เพราะอยู่แล้วใน Windows Form Designer
|
 |
 |
 |
 |
Date :
2010-11-17 22:01:06 |
By :
base3000 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ครับ ขอบคุณครับ
|
 |
 |
 |
 |
Date :
2010-11-17 22:37:25 |
By :
pisansri |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
จัดไป
Code (VB.NET)
Dim Conn As SqlConnection 'ยังไม่ต้อง New
Dim da As SqlDataAdapter
Dim product As OleDb.OleDbCommand 'บรรทัดนี้ไว้ทำอะไร ใช้ da พอแล้วมั้ง
Dim add_state As Boolean = False
Dim ds As DataSet = New DataSet 'ไม่ต้องใช้ DataSet ใช้ Datatable ไปเลย
Dim dt As DataTable
Private bin As New BindingSource 'ย้ายมาจากข้างล่าง
Dim Tody As Date 'Today หรือเปล่า
Dim CurrentRecord As Integer = 0
Dim Recordcount As Integer = 0
Dim UseFont As New Font("MS Sans Serif", 10)
Private WithEvents prDoc As New Printing.PrintDocument 'ต้องมี WithEvents ด้วย แล้วใช้คำสั่ง Graphics เป็นหรือยัง
Private prDlg As PrintDialog = New PrintDialog 'ไม่ต้องรีบประกาศ จะใช้ค่อนประกาศ
Dim strConnString, strSQL As String 'strConnString ใช้ครั้งเดียว ประกาศใน Sub
Dim objCmd As New SqlCommand 'ยังไม่ต้อง New
Dim objConn As New SqlConnection 'มีทำไมหลายอัน
Dim dspro As New DataSet 'อันนี้ก็ด้วย
'ชุดนี้ไว้ทำอะไร ซ้ำทั้งนั้น
Dim dtSet As DataSet = New DataSet 'ประกาศตัวแปรแทนออบเจ็คหรือ Instance จากคลาส DataSet
Dim dtTable As DataTable 'ประกาศตัวแปรแทนออบเจ็คหรือ Instance จากคลาส DataTable
Dim objCurrencyMgr As CurrencyManager 'ประกาศตัวแปรแทนออบเจ็คหรือ Instance จากคลาส CurrencyManager
Dim currRecPos As Integer 'ประกาศตัวแปรเก็บตำแหน่งเรคอร์ดปัจจุบัน
'ประกาศตัวแปรแสดงโหมดการทำงาน ถ้าอยู่ในโหมดเพิ่มเรคอร์ดจะมีค่าเป็น True ถ้าอยู่ในโหมดแก้ไขจะมีค่าเป็น False
Dim addNewMode As Boolean
Dim fdName As String 'ประกาศตัวแปรเก็บชื่อฟีลด์ในเทเบิล Contacts
Dim sHelpFile As String
Dim ActionFlag As String = ""
Dim LastRevenueID As String = ""
Dim Dtflnfo As DateTimeFormatInfo
Dim IsFind As Boolean = False
Private Sub Land_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim strConn As String = "Data Source=.\SQLEXPRESS;Initial Catalog=SSPEGIS;Integrated Security=True"
Conn = New SqlConnection(strConn)
'DataAdapter ไม่ต้อง Open Conn
Dim sqlland As String
sqlland = "SELECT * FROM land ORDER BY LANDID"
da = New SqlDataAdapter(sqlland, Conn)
da.Fill(dt)
'ไม่ต้องเช็คหรอก ไม่มีอะไรเลยก็ Bind ได้ If ds.Tables("land").Rows.Count <> 0 Then
'เอาไปไว้ข้างนอก Dim bin As New BindingSource(ds, "land")
'ตรงนี้สร้าง Updateข้อมูล มีข้อแม้ว่า ตาราง land ต้องมี คีย์ฟิลล์
Dim cmb As SqlCommandBuilder
cmb = New SqlCommandBuilder(da)
'เพิ่มเติมบรรทัดนี้
bin.Datasource = dt
'นำคอนโทรลเท็กซ์บ็อกซ์บนฟอร์มมาผูกกับข้อมูลในแต่ละฟีลด์ของ datatable
txtLANDID.DataBindings.Add("Text", bin, "LANDID")
txtPARCEL_CODE.DataBindings.Add("Text", bin, "PARCEL_CODE")
txtTAMBON_TH.DataBindings.Add("Text", bin, "TAMBON_TH")
txtDISTRICT_TH.DataBindings.Add("Text", bin, "DISTRICT_TH")
txtPROVINCE_TH.DataBindings.Add("Text", bin, "PROVINCE_TH")
txtUTM_CODE.DataBindings.Add("Text", bin, "UTM_CODE")
txtUTM_NO.DataBindings.Add("Text", bin, "UTM_NO")
txtUTM_PAGE.DataBindings.Add("Text", bin, "UTM_PAGE")
'txtUSED_DESC.DataBindings.Add("Text", bin, "USED_DESC")
'txtLDOC_TYPE.DataBindings.Add("Text", bin, "LDOC_TYPE")
'txtL_UTILIZATION.DataBindings.Add("Text", bine, "L_UTILIZATION")
txtSURVEY_NO.DataBindings.Add("Text", bin, "SURVEY_NO")
'txtLDOC_NO.DataBindings.Add("Text", bin, "USED_DESC")
txtLAND_NO.DataBindings.Add("Text", bin, "LDOC_NO")
txtDOL_RAI.DataBindings.Add("Text", bin, "DOL_RAI")
txtDOL_NGAN.DataBindings.Add("Text", bin, "DOL_NGAN")
txtDOL_WA.DataBindings.Add("Text", bin, "DOL_WA")
txtTAXED_RAI.DataBindings.Add("Text", bin, "TAXED_RAI")
txtTAXED_NGAN.DataBindings.Add("Text", bin, "TAXED_NGAN")
txtTAXED_WA.DataBindings.Add("Text", bin, "TAXED_WA")
End Sub
Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click
'เอาออกไป
'Dim strConn As String
'Dim sqlupdate As String
'Dim sqladd As String
'sqlupdate = "update land "
'sqlupdate &= " set PARCEL_CODE = '" & txtPARCEL_CODE.Text & "',"
'sqlupdate &= " TAMBON_TH= '" & txtTAMBON_TH.Text & "',"
'sqlupdate &= " DISTRICT_TH= " & Val(txtDISTRICT_TH.Text) & ","
'sqlupdate &= " PROVINCE_TH= " & Val(txtPROVINCE_TH.Text) & ""
'sqlupdate &= " UTM_CODE = '" & txtUTM_CODE.Text & "'"
'sqlupdate &= " where LANDID = '" & txtLANDID.Text & "'"
'sqladd = "insert into land(LANDID,PARCEL_CODE, TAMBON_TH , DISTRICT_TH,PROVINCE_TH)"
'sqladd &= " values ('" & txtLANDID.Text & "',"
'sqladd &= " '" & txtPARCEL_CODE.Text & "',"
'sqladd &= "'" & txtTAMBON_TH.Text & "',"
'sqladd &= "" & Val(txtDISTRICT_TH.Text) & ","
'sqladd &= "" & Val(txtPROVINCE_TH.Text) & ")"
'With Conn
'If .State = ConnectionState.Open Then .Close()
'.ConnectionString = strConn
'.Open()
'End With
Dim dtChange As DataTable = dt.GetChanges
'ถ้าจะตรวจสอบข้อมูล ให้เอาตารางนี้ไปตรวจ
Try
bin.EndEdit()
da.Update(dtChange)
dt.AcceptChanges()
Catch ex As SqlException
MessageBox.Show(ex.Message)
Finally
Conn.Close()
End Try
'เอาออกไป
'product = New OleDb.OleDbCommand
'With product
'.CommandType = CommandType.Text
' If add_state = True Then
'.CommandText = sqladd
' Else
'.CommandText = sqlupdate
'End If
' .Connection = Conn
' .ExecuteNonQuery()
' End With
' Catch ErrorToEdit As Exception
'MessageBox.Show(ErrorToEdit.Message & sqladd, "ข้อผิดพลาด", MessageBoxButtons.OK, MessageBoxIcon.Error)
' Exit Sub
' End Try
add_state = False
MessageBox.Show("บันทึกข้อมูลเสร็จแล้ว ", "แจ้งให้ทราบ", MessageBoxButtons.OK, MessageBoxIcon.Information)
Call lock_object()
Call Show()
End Sub
Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdd.Click
addNewMode = True 'แสดงโหมดการทำงานแบบเพิ่มเรคอร์ดใหม่
currRecPos = bin.Position 'เก็บตำแหน่งเรคอร์ดปัจจุบันใน datatable ไว้ที่ currRecPos
bin.AddNew() 'เพิ่มเรคอร์ดใหม่ว่างๆ 1 เรคอร์ดใน datatable
EnabledReadWrite() 'ให้เท็กซ์บ็อกซ์ทั้งหมดแสดงข้อมูลแบบอ่านเขียนได้
txtLANDID.Focus()
End Sub
Private Sub btnFirst_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnFirst.Click
bin.Position = 1
End Sub
Private Sub btnPrevious_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPrevious.Click
'เช็คตำแหน่งด้วย เพราะถ้าเลย มันจะ Error
bin.Position -= 1
End Sub
Private Sub btnNext_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNext.Click
'เช็คตำแหน่งด้วย เพราะถ้าเลย มันจะ Error
bin.Position += 1
End Sub
Private Sub btnLast_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLast.Click
bin.Position = objCurrencyMgr.Count - 1
End Sub
Private Sub btndelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btndelete.Click
If dtTable.Rows.Count <= 0 Then
Exit Sub 'ถ้าเป็น datatable ว่าง ให้ออกจาก Procedure นี้
'ถ้าไม่ใช่ datatable ว่าง และผู้ใช้ยืนยันการลบ
ElseIf MessageBox.Show("ต้องการลบเรคอร์ดนี้ใช่หรือไม่?", "ยืนยันการลบ", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = vbYes Then
bin.RemoveCurrent() 'ให้ลบเรคอร์ดปัจจุบันออกจาก datatable
'ลบออกจากฐานข้อมูลตอนบันทึกก็ได้ dtAdapter.Update(dtTable) 'และลบเรคอร์ดนี้ออกจากฐานข้อมูลด้วย
'เวลา Update มีแก้ไขหรือลบไปกี่เรคคอร์ด มันจะจัดการให้หมด
currRecPos = bin.Position 'เก็บเรคอร์ดปัจจุบันบนฟอร์มไว้ที่ currRecPos
End If
If dtTable.Rows.Count = 0 Then 'ถ้าลบเรคอร์ดใน datatable จนหมด
DisabledReadWrite() 'ให้เท็กซ์บ็อกซ์ทั้งหมดแสดงข้อมูลแบบอ่านได้อย่างเดียว
End If
End Sub
Private Sub btnEdit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEdit.Click
If dtTable.Rows.Count <= 0 Then
Exit Sub 'ถ้าเป็น datatable ว่าง ให้ออกจาก Procedure นี้
Else 'ถ้าไม่ใช่ datatable ว่าง
addNewMode = False 'แสดงโหมดการทำงานแบบแก้ไขเรคอร์ด
EnabledReadWrite() 'ให้เท็กซ์บ็อกซ์ทั้งหมดแสดงข้อมูลแบบอ่านเขียนได้
currRecPos = bin.Position 'เก็บเรคอร์ดปัจจุบันบนฟอร์มไว้ที่ currRecPos
txtLANDID.Focus() 'เลื่อนเคอร์เซอร์รับข้อมูลบนจอภาพไปที่ช่องชื่อ
End If
End Sub
|
ประวัติการแก้ไข 2010-11-18 00:15:22
 |
 |
 |
 |
Date :
2010-11-17 23:00:55 |
By :
base3000 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ไม่รู้เอาไปลองหรือยัง มีเพิ่มเติม 1 บรรทัด
bin.Datasource = dt
|
 |
 |
 |
 |
Date :
2010-11-18 00:13:09 |
By :
base3000 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Option Explicit On
Option Strict On
Imports System.Data
Imports System.Data.SqlClient
Imports System.Globalization
Imports System.Drawing.Printing
Public Class Land
Dim Conn As SqlConnection = New SqlConnection
Dim da As SqlDataAdapter
Dim add_state As Boolean = False
Dim dt As DataTable = New DataTable
Private bin As New BindingSource
Dim Today As Date
Dim CurrentRecord As Integer = 0
Dim Recordcount As Integer = 0
Dim UseFont As New Font("MS Sans Serif", 10)
Dim prDoc As PrintDocument = New PrintDocument
Private prDlg As PrintDialog = New PrintDialog
Dim dtTable As DataTable
Dim objCurrencyMgr As CurrencyManager
Dim currRecPos As Integer
Dim addNewMode As Boolean
Dim fdName As String
Dim sHelpFile As String
Dim ActionFlag As String = ""
Dim LastRevenueID As String = ""
Dim Dtflnfo As DateTimeFormatInfo
Dim IsFind As Boolean = False
Private Sub Land_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim strConn As String
strConn = "Data Source=.\SQLEXPRESS;Initial Catalog=SSPEGIS;Integrated Security=True"
Conn = New SqlConnection(strConn)
Dim sqlland As String = ""
sqlland = "SELECT * FROM land ORDER BY LANDID"
da = New SqlDataAdapter(sqlland, Conn)
da.Fill(dt)
Dim cmb As SqlCommandBuilder
cmb = New SqlCommandBuilder(da)
bin.DataSource = dt
lblLANDID.DataBindings.Add("Text", bin, "LANDID")
txtPARCEL_CODE.DataBindings.Add("Text", bin, "PARCEL_CODE")
txtTAMBON_TH.DataBindings.Add("Text", bin, "TAMBON_TH")
txtDISTRICT_TH.DataBindings.Add("Text", bin, "DISTRICT_TH")
txtPROVINCE_TH.DataBindings.Add("Text", bin, "PROVINCE_TH")
txtUTM_CODE.DataBindings.Add("Text", bin, "UTM_CODE")
txtUTM_NO.DataBindings.Add("Text", bin, "UTM_NO")
txtUTM_PAGE.DataBindings.Add("Text", bin, "UTM_PAGE")
'txtUSED_DESC.DataBindings.Add("Text", bin, "USED_DESC")
'txtLDOC_TYPE.DataBindings.Add("Text", bin, "LDOC_TYPE")
'txtL_UTILIZATION.DataBindings.Add("Text", bine, "L_UTILIZATION")
txtSURVEY_NO.DataBindings.Add("Text", bin, "SURVEY_NO")
'txtLDOC_NO.DataBindings.Add("Text", bin, "USED_DESC")
txtLAND_NO.DataBindings.Add("Text", bin, "LDOC_NO")
txtDOL_RAI.DataBindings.Add("Text", bin, "DOL_RAI")
txtDOL_NGAN.DataBindings.Add("Text", bin, "DOL_NGAN")
txtDOL_WA.DataBindings.Add("Text", bin, "DOL_WA")
txtTAXED_RAI.DataBindings.Add("Text", bin, "TAXED_RAI")
txtTAXED_NGAN.DataBindings.Add("Text", bin, "TAXED_NGAN")
txtTAXED_WA.DataBindings.Add("Text", bin, "TAXED_WA")
End Sub
Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click
add_state = False
MessageBox.Show("บันทึกข้อมูลเสร็จแล้ว ", "แจ้งให้ทราบ", MessageBoxButtons.OK, MessageBoxIcon.Information)
'Call lock_object()'''''''''''''''''''''''''ตรงนี้อะครับมันใช้ไม่ได้มันขึ้นSyntex Error
Call Show()
End Sub
Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdd.Click
addNewMode = True
currRecPos = objCurrencyMgr.Position '''''''''มัน RunTIME error ตรงนี้ครับ
objCurrencyMgr.AddNew()
'EnabledReadWrite() '''''''''''''''''''''''''ตรงนี้อะครับมันใช้ไม่ได้มันขึ้นSyntex Error
lblLANDID.Focus()
End Sub
Private Sub btnFirst_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnFirst.Click
bin.Position = 1
End Sub
Private Sub btnPrevious_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPrevious.Click
bin.Position -= 1
End Sub
Private Sub btnNext_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNext.Click
bin.Position += 1
End Sub
Private Sub btnLast_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLast.Click
bin.Position = -1 ''''''''ตรงนี้อะครับมันไม่ไปที่ตำแหน่งสุดท้าย
End Sub
Private Sub btndelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btndelete.Click
If dtTable.Rows.Count <= 0 Then '''''''''มัน RunTIME error ตรงนี้ครับ
Exit Sub
ElseIf MessageBox.Show("ต้องการลบเรคอร์ดนี้ใช่หรือไม่?", "ยืนยันการลบ", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = vbYes Then
bin.RemoveCurrent()
currRecPos = bin.Position
End If
If dtTable.Rows.Count = 0 Then
'DisabledReadWrite() '''''''''''''''''''''''''ตรงนี้อะครับมันใช้ไม่ได้มันขึ้นSyntex Error
End If
End Sub
Private Sub btnEdit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEdit.Click
If dtTable.Rows.Count <= 0 Then '''''''''มัน RunTIME error ตรงนี้ครับ
Exit Sub
Else
addNewMode = False
'EnabledReadWrite() '''''''''''''''''''''''''ตรงนี้อะครับมันใช้ไม่ได้มันขึ้นSyntex Error
currRecPos = bin.Position
lblLANDID.Focus()
End If
End Sub
Private Sub btnprint_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnprint.Click
End Sub
End Class
|
 |
 |
 |
 |
Date :
2010-11-18 14:09:58 |
By :
pisansri |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
รันได้ครับ เเต่ตรงปุ่ม เพิ่ม แก้ไข ลบ บันทึกยังไม่ได้
รบกวนพี่บ่อยขนาดนี้คงไม่ว่านะครับ
|
 |
 |
 |
 |
Date :
2010-11-18 14:11:57 |
By :
pisansri |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ผมให้คุณกลับไปทำการบ้านก่อน แล้วค่อยว่ากันอีกที ผมจะแวะมาดูตอนเย็น
ผมจะให้หลักการตามนี้
1. ไปดูตัวแปร(Object)ที่ประกาศไว้ แต่ละตัวใช้ทำอะไรบ้าง ตัวไหนไม่ใช้ ลบทิ้่งไปซะ เช่น dt กับ dtTable
2. ที่ขึ้นเส้นสีเขียวแล้วมีวงด้านหลัง มันหมาย Sub Procedure ซึ่งจะมีหรือไม่มีผมก็ไม่อาจทราบได้ ถ้าไม่มีก็ลบทิ้งไปซะ
|
 |
 |
 |
 |
Date :
2010-11-18 15:17:28 |
By :
base3000 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Option Explicit On
Option Strict On
Imports System.Data
Imports System.Data.SqlClient
Public Class Land
Dim Conn As SqlConnection = New SqlConnection
Dim da As SqlDataAdapter
Dim add_state As Boolean = True
Dim dt As New DataTable
Private bin As New BindingSource
Dim objCurrencyMgr As CurrencyManager
Dim currRecPos As Integer
Dim addNewMode As Boolean
Private Sub Land_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim strConn As String
strConn = "Data Source=.\SQLEXPRESS;Initial Catalog=SSPEGIS;Integrated Security=True"
Conn = New SqlConnection(strConn)
Dim sqlland As String = ""
sqlland = "SELECT * FROM land ORDER BY LANDID"
da = New SqlDataAdapter(sqlland, Conn)
da.Fill(dt)
Dim cmb As SqlCommandBuilder
cmb = New SqlCommandBuilder(da)
bin.DataSource = dt
lblLANDID.DataBindings.Add("Text", bin, "LANDID")
txtPARCEL_CODE.DataBindings.Add("Text", bin, "PARCEL_CODE")
txtTAMBON_TH.DataBindings.Add("Text", bin, "TAMBON_TH")
txtDISTRICT_TH.DataBindings.Add("Text", bin, "DISTRICT_TH")
txtPROVINCE_TH.DataBindings.Add("Text", bin, "PROVINCE_TH")
txtUTM_CODE.DataBindings.Add("Text", bin, "UTM_CODE")
txtUTM_NO.DataBindings.Add("Text", bin, "UTM_NO")
txtUTM_PAGE.DataBindings.Add("Text", bin, "UTM_PAGE")
'txtUSED_DESC.DataBindings.Add("Text", bin, "USED_DESC")
'txtLDOC_TYPE.DataBindings.Add("Text", bin, "LDOC_TYPE")
'txtL_UTILIZATION.DataBindings.Add("Text", bine, "L_UTILIZATION")
txtSURVEY_NO.DataBindings.Add("Text", bin, "SURVEY_NO")
'txtLDOC_NO.DataBindings.Add("Text", bin, "USED_DESC")
txtLAND_NO.DataBindings.Add("Text", bin, "LDOC_NO")
txtDOL_RAI.DataBindings.Add("Text", bin, "DOL_RAI")
txtDOL_NGAN.DataBindings.Add("Text", bin, "DOL_NGAN")
txtDOL_WA.DataBindings.Add("Text", bin, "DOL_WA")
txtTAXED_RAI.DataBindings.Add("Text", bin, "TAXED_RAI")
txtTAXED_NGAN.DataBindings.Add("Text", bin, "TAXED_NGAN")
txtTAXED_WA.DataBindings.Add("Text", bin, "TAXED_WA")
End Sub
Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click
add_state = False
MessageBox.Show("บันทึกข้อมูลเสร็จแล้ว ", "แจ้งให้ทราบ", MessageBoxButtons.OK, MessageBoxIcon.Information)
'Call lock_object()
Call Show()
End Sub
Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdd.Click
addNewMode = True
currRecPos = bin.Position
bin.AddNew()
'EnabledReadWrite()
lblLANDID.Focus()
End Sub
Private Sub btnFirst_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnFirst.Click
bin.Position = 1
End Sub
Private Sub btnPrevious_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPrevious.Click
bin.Position -= 1
End Sub
Private Sub btnNext_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNext.Click
bin.Position += 1
End Sub
Private Sub btnLast_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLast.Click
bin.Position = bin.Count - 1
End Sub
Private Sub btndelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btndelete.Click
If dt.Rows.Count <= 0 Then
Exit Sub
ElseIf MessageBox.Show("ต้องการลบเรคอร์ดนี้ใช่หรือไม่?", "ยืนยันการลบ", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = vbYes Then
bin.RemoveCurrent()
currRecPos = bin.Position
End If
If dt.Rows.Count = 0 Then
'DisabledReadWrite()
End If
End Sub
Private Sub btnEdit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEdit.Click
If dt.Rows.Count <= 0 Then
Exit Sub
Else
addNewMode = False
'EnabledReadWrite()
currRecPos = bin.Position
lblLANDID.Focus()
End If
End Sub
Private Sub btnprint_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnprint.Click
End Sub
End Class
|
 |
 |
 |
 |
Date :
2010-11-18 17:29:00 |
By :
pisansri |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
แก้ ได้เเล้วครับเเต่ยังบันทึกยังไม่ลงฐาน เเละ ลบออกจากฐานได้
|
 |
 |
 |
 |
Date :
2010-11-18 17:30:20 |
By :
pisansri |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click
'เอาชุดนี้ใส่เข้าไป
Dim dtChange As DataTable = dt.GetChanges
Try
bin.EndEdit()
da.Update(dtChange)
dt.AcceptChanges()
Catch ex As SqlException
MessageBox.Show(ex.Message)
End Try
add_state = False
MessageBox.Show("บันทึกข้อมูลเสร็จแล้ว ", "แจ้งให้ทราบ", MessageBoxButtons.OK, MessageBoxIcon.Information)
'Call lock_object()
Call Show()
End Sub
[font=Verdana]-------------------------------------------------------------[/font]
If dt.Rows.Count <= 0 Then --> Count ไม่มีน้อยกว่า 0 เอา < ออกไป
[font=Verdana]-------------------------------------------------------------[/font]
Private Sub btndelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btndelete.Click
If dt.Rows.Count = 0 Then Exit Sub
If MessageBox.Show("ต้องการลบเรคอร์ดนี้ใช่หรือไม่?", "ยืนยันการลบ", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = vbYes Then
bin.RemoveCurrent()
currRecPos = bin.Position
End If
If dt.Rows.Count = 0 Then
'DisabledReadWrite()
End If
End Sub
[font=Verdana]-------------------------------------------------------------[/font]
|
 |
 |
 |
 |
Date :
2010-11-18 18:36:30 |
By :
base3000 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|

|
 |
 |
 |
 |
Date :
2010-11-18 19:31:07 |
By :
pisansri |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
มันเป็นเเบบนี้ครับ หรือเป็นที่ฐานของผมรึเปล่า
|
 |
 |
 |
 |
Date :
2010-11-18 19:32:24 |
By :
pisansri |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
อ้อลืมไป เพิ่มตรงนี้เข้านะครับ
bin.EndEdit()
Dim dtChange As DataTable = dt.GetChanges
if dtChange isNot Nothing then
Try
da.Update(dtChange)
dt.AcceptChanges()
Catch ex As SqlException
MessageBox.Show(ex.Message)
End Try
End if
สาเหตุเกิดจากคุณยังไม่ได้มีการแก้ไข จึงไม่มีอะไรใน dtChange
|
ประวัติการแก้ไข 2010-11-18 21:19:28
 |
 |
 |
 |
Date :
2010-11-18 20:20:41 |
By :
base3000 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
save ได้ครับ เเต่ยังไม่ลงฐาน เเละลบออกจากฐานยังไม่ได้
|
 |
 |
 |
 |
Date :
2010-11-18 22:18:31 |
By :
pisansri |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ย้าย EndEdit ขึ้นไปไว้บรรทัดแรกหรือยัง
ถ้าย้ายแล้ว ลองย้ายการประกาศ dtChange ไปไว้นอก Sub และ ลาก DataGridView มาไว้ใน From
นำ dtChange ไป Bind กับ DataGridView ที่สร้างขึ้นมาโดยที่คำสั่ง Save ให้ทำอย่างนี้
Private dtChange As DataTable
Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click
bin.EndEdit()
dtChange = dt.GetChanges
if dtChange isNot Notthing then ---> ใส่ BrackPoint ไว้ตรงนี้ แล้วดูว่ามันวิ่งเข้าไปทำงานใน If หรือเปล่า
Me.DataGridView1.DataSource = dtChange
End if
ส่วนนี้ ใส่เครื่อง Single quotes (') เพื่อพักไว้ก่อน
'Try
'da.Update(dtChange)
'dt.AcceptChanges()
'Catch ex As SqlException
'MessageBox.Show(ex.Message)
'End Try
add_state = False
MessageBox.Show("บันทึกข้อมูลเสร็จแล้ว ", "แจ้งให้ทราบ", MessageBoxButtons.OK, MessageBoxIcon.Information)
'Call lock_object()
Call Show()
End Sub
เมื่อกดปุ่ม Save แล้ว ดูว่ามีรายที่แก้ไขเข้ามาอยู่ในตารางหรือไม่
แล้วค่อยมาดูกันต่อไป แต่ขอเป็นพรุ่งนี้เช้าแล้วนะครับ
|
ประวัติการแก้ไข 2010-11-18 22:48:08
 |
 |
 |
 |
Date :
2010-11-18 22:44:39 |
By :
base3000 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ครับ ง่วงเเล้วเหมือนกัน
|
 |
 |
 |
 |
Date :
2010-11-18 23:37:11 |
By :
pisansri |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
บันทึกลง DataGridView1 ได้ครับ
|
 |
 |
 |
 |
Date :
2010-11-19 08:23:26 |
By :
pisansri |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ปกติก่อนเรียกใช้ da.Update(...)
ต้องมีการกำหนด
da.UpdateCommand = new SqlCommand(.....)
da.DeleteCommand = new SqlCommand(.....)
da.InsertCommand = new SqlCommand(.....)
ผมยังไม่เห็นตรงไหนเลยอ่ะครับ
|
 |
 |
 |
 |
Date :
2010-11-19 08:33:29 |
By :
watcharop |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
บันทึกได้เเล้วครับ
|
 |
 |
 |
 |
Date :
2010-11-19 08:46:06 |
By :
pisansri |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
โอ๋ย เเก้ไขได้บันทึกได้ เเต่เพิ่มยังบันทึกไม่ได้
|
 |
 |
 |
 |
Date :
2010-11-19 08:47:57 |
By :
pisansri |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ก็ถึงว่า...
|
 |
 |
 |
 |
Date :
2010-11-19 08:58:51 |
By :
watcharop |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เพิ่มก็บันทึกได้เเล้วครับเเล้วครับ เเต่ต้อง มา คีย์ ตรง LANDID ด้วย ถึงจะบันทึกได้ เราต้องตั้งค่า อะไรใน MS SQL SERVER 2008 รึเปล่าครับ
|
 |
 |
 |
 |
Date :
2010-11-19 09:05:17 |
By :
pisansri |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Dim cmb As SqlCommandBuilder
cmb = New SqlCommandBuilder(da)
bin.DataSource = dt
คำสั่งชุดบน จัดการในเรื่องของชุดล่างให้แล้ว
da.UpdateCommand = new SqlCommand(.....)
da.DeleteCommand = new SqlCommand(.....)
da.InsertCommand = new SqlCommand(.....)
ที่เพิ่มใหม่ไม่ได้ เพราะ ตารางในฐานข้อมูล มีบาง Column กำหนด Not Null ไว้ แต่คุณไม่ได้สร้าง TextBox หรืออะไรก็แล้วแต่ มารองรับรับมัน เมื่อค่านั้นยังเป็น Null อยู่ มันจึงไม่ยอมให้ Update ส่วนที่เรียกขึ้นมา Edit มันมีข้อมูลเก่าที่ยอมรับได้อยู่แล้ว จึงสามารถ Update ได้
คุณลองเอา bin ไปใส่ใน DatagridView1
Me.DatagridView1.Datasource = bin -----> ต่อจาก bin.DataSource = dt
แล้ว AddNew
หลังจากนั้นใส่ข้อมูลที่ DatagridView1 ให้ครบทุกช่อง แล้วลอง Save ดู
|
 |
 |
 |
 |
Date :
2010-11-19 09:07:32 |
By :
base3000 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขออภัย เมื่อกี้ ตาลาย หาไม่เจอ 
|
 |
 |
 |
 |
Date :
2010-11-19 09:12:23 |
By :
watcharop |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ที่ตอนนี้ผมลบ DatagridView1 ออกเเล้วมันสามารถเพิ่มใน MS SQL SERVER 2008 ได้เเล้วครับ เเต่ต้อง มา คีย์ ลำดับ ตรง
textbox LANDID ด้วยคือผมอยากให้ ตรงLANDID มันรัน ลำดับลงมา เเบบ autoครับ เเต่ตอนนี้ ต้องมาคีย์เลขลำดับตรง LANDID เอง ถึงจะเพิ่มข้อมูลได้ครับ
|
 |
 |
 |
 |
Date :
2010-11-19 09:27:27 |
By :
pisansri |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ในฐานข้อมูลก็กำหนดให้ LANDID เป็น auto increament สิครับ (int) แล้วไม่ต้องสร้าง textbox สำหรับเก็บค่า LANIDID แล้วก็ลบในคำสั่งSQL ที่จะเพิ่ม ลบ แก้ไข ออกไปด้วยเพราะว่ามันจะไม่มีการอัพเดทใดๆ เช่น ถ้า insert UPdate ข้อมูล เราก็ไม่ต้องเอา LANDID มา แต่ส่วนอื่นๆทำเหมือนเดิมหมด
|
ประวัติการแก้ไข 2010-11-19 09:50:20
 |
 |
 |
 |
Date :
2010-11-19 09:47:58 |
By :
Dragons_first |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ผมมักจะใช้วิธีนี้ ใน Module ของการบันทึกข้อมูล
มันอาจจะสะกดผิดบ้างตัว
เพราะตอนนี้ไม่มี VS ช่วย
Code (VB.NET)
Try
' อ่าน Primary ตัวสุดท้าย
Dim sqlCmd As SqlCommand = sqlCn.CreateCommand()
SQL = "SELECT PK=ISNULL((SELECT TOP 1 x.PK FROM Table1 ORDER BY x.PK DESC),0), SysDate=GETDATE()"
sqlCmd.CommandText = SQL
Dim dread As SqlDataReader = sqlCmd.ExecuteReader()
If dread.Read() Then
NewID = dread("PK")
SysDate = dread("SysDate")
End If
dread.Close()
stErr = ""
For Each drow dtable.Rows
blUpdate = False
' ส่วนของการ Validate ข้อมูล
If (drow.RowState And 20) > 0 Then
' มีการแก้ไขหรือเพิ่มข้อมูล
If <เงื่อนไขตรวจสอบความถูกต้องของข้อมูล 1> Then stErr += vbCrLf +"- ข้อผิดพลาด 1"
If <เงื่อนไขตรวจสอบความถูกต้องของข้อมูล 2> Then stErr += vbCrLf +"- ข้อผิดพลาด 2"
If stErr<>"" Then Throw New Exception(stErr)
blUpdate = True
End If
' ส่วนของการ Update User และวันที่
If blUpdate Then
If drow.RowState = DataRowStat.Added Then
NewID += 1
drow("PK") = NewID
drow("usrInsert") = My.User.Name
drow("dtInsert") = SysDate
End If
drow("usrModify") = My.User.Name
drow("dtModify") = SysDate
End If
Next
da.Update(dtable)
Catch ex As Exception
......
End Try
|
 |
 |
 |
 |
Date :
2010-11-19 09:53:41 |
By :
watcharop |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click
bin.EndEdit()
dtChange = dt.GetChanges
If dtChange IsNot Nothing Then
End If
Try
da.Update(dtChange)
da.InsertCommand = New SqlCommand()
dt.AcceptChanges()
Catch ex As SqlException
MessageBox.Show(ex.Message)
End Try
add_state = False
MessageBox.Show("บันทึกข้อมูลเสร็จแล้ว ", "แจ้งให้ทราบ", MessageBoxButtons.OK, MessageBoxIcon.Information)
'Call lock_object()
Call Show()
End Sub
|
 |
 |
 |
 |
Date :
2010-11-19 10:23:49 |
By :
pisansri |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ถ้าผมมีโค๊ดตัวนี้ เเล้วผม จะใส่ โค๊ดของของพี่ ลงไปยังไงละครับ
|
 |
 |
 |
 |
Date :
2010-11-19 10:25:27 |
By :
pisansri |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
คงไม่ได้
เพราะคุณน้องยังไม่ได้สร้าง DataSet เพื่อรองรับ Database เลยล่ะมั้ง
ตอบไปล่ะ ว่าแต่ถามผมรึเปล่าเนี่ยะ
|
 |
 |
 |
 |
Date :
2010-11-19 10:31:48 |
By :
watcharop |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Option Explicit On
Option Strict On
Imports System.Data
Imports System.Data.SqlClient
Public Class frmland
Dim Conn As SqlConnection = New SqlConnection
Dim da As SqlDataAdapter
Dim add_state As Boolean = True
Dim dt As New DataTable
Private bin As New BindingSource
Dim objCurrencyMgr As CurrencyManager
Dim currRecPos As Integer
Dim addNewMode As Boolean
Dim ds As DataSet = New DataSet
Dim IsFind As Boolean = False
Private Sub Land_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim strConn As String
strConn = "Data Source=.\SQLEXPRESS;Initial Catalog=SSPEGIS2;Integrated Security=True"
Conn = New SqlConnection(strConn)
Dim sqlland As String = ""
sqlland = "SELECT * FROM land ORDER BY LANDID"
If IsFind = True Then
ds.Tables("land").Clear()
End If
da = New SqlDataAdapter(sqlland, Conn)
da.Fill(dt)
Dim cmb As SqlCommandBuilder
cmb = New SqlCommandBuilder(da)
bin.DataSource = dt
txtLANDID.DataBindings.Add("Text", bin, "LANDID")
txtPARCEL_CODE.DataBindings.Add("Text", bin, "PARCEL_CODE")
txtTAMBON_TH.DataBindings.Add("Text", bin, "TAMBON_TH")
txtDISTRICT_TH.DataBindings.Add("Text", bin, "DISTRICT_TH")
txtPROVINCE_TH.DataBindings.Add("Text", bin, "PROVINCE_TH")
txtUTM_CODE.DataBindings.Add("Text", bin, "UTM_CODE")
txtUTM_NO.DataBindings.Add("Text", bin, "UTM_NO")
txtUTM_PAGE.DataBindings.Add("Text", bin, "UTM_PAGE")
'txtUSED_DESC.DataBindings.Add("Text", bin, "USED_DESC")
'txtLDOC_TYPE.DataBindings.Add("Text", bin, "LDOC_TYPE")
'txtL_UTILIZATION.DataBindings.Add("Text", bine, "L_UTILIZATION")
txtSURVEY_NO.DataBindings.Add("Text", bin, "SURVEY_NO")
'txtLDOC_NO.DataBindings.Add("Text", bin, "USED_DESC")
txtLAND_NO.DataBindings.Add("Text", bin, "LDOC_NO")
txtDOL_RAI.DataBindings.Add("Text", bin, "DOL_RAI")
txtDOL_NGAN.DataBindings.Add("Text", bin, "DOL_NGAN")
txtDOL_WA.DataBindings.Add("Text", bin, "DOL_WA")
txtTAXED_RAI.DataBindings.Add("Text", bin, "TAXED_RAI")
txtTAXED_NGAN.DataBindings.Add("Text", bin, "TAXED_NGAN")
txtTAXED_WA.DataBindings.Add("Text", bin, "TAXED_WA")
End Sub
Private dtChange As DataTable
Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click
bin.EndEdit()
dtChange = dt.GetChanges
If dtChange IsNot Nothing Then
End If
Try
da.Update(dtChange)
da.InsertCommand = New SqlCommand()
dt.AcceptChanges()
Catch ex As SqlException
MessageBox.Show(ex.Message)
End Try
add_state = False
MessageBox.Show("บันทึกข้อมูลเสร็จแล้ว ", "แจ้งให้ทราบ", MessageBoxButtons.OK, MessageBoxIcon.Information)
'Call lock_object()
Call Show()
End Sub
Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdd.Click
addNewMode = True
currRecPos = bin.Position
bin.AddNew()
'EnabledReadWrite()
txtLANDID.Focus()
End Sub
Private Sub btnFirst_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnFirst.Click
bin.Position = 1
End Sub
Private Sub btnPrevious_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPrevious.Click
bin.Position -= 1
End Sub
Private Sub btnNext_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNext.Click
bin.Position += 1
End Sub
Private Sub btnLast_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLast.Click
bin.Position = bin.Count - 1
End Sub
Private Sub btndelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btndelete.Click
If dt.Rows.Count = 0 Then Exit Sub
If MessageBox.Show("ต้องการลบเรคอร์ดนี้ใช่หรือไม่?", "ยืนยันการลบ", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = vbYes Then
bin.RemoveCurrent()
currRecPos = bin.Position
End If
If dt.Rows.Count = 0 Then
'DisabledReadWrite()
End If
End Sub
Private Sub btnEdit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEdit.Click
If dt.Rows.Count <= 0 Then
Exit Sub
Else
addNewMode = False
'EnabledReadWrite()
currRecPos = bin.Position
txtLANDID.Focus()
End If
End Sub
Private Sub btnprint_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnprint.Click
End Sub
End Class
|
 |
 |
 |
 |
Date :
2010-11-19 11:18:16 |
By :
pisansri |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ถามพี watcharop นี่เเหละครับโค๊ดผมใส่ยังไงครับ
|
 |
 |
 |
 |
Date :
2010-11-19 11:19:21 |
By :
pisansri |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
อยู่ใน btnSave_Click
Code (VB.NET)
Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click
Try
' เปิดคอนเน็คชั่น da.Connection
If da.Connection.State <> ... จำไม่ได้ Then
da.Connection.Open()
End If
' อ่าน Primary ตัวสุดท้าย
Dim sqlCmd As SqlCommand = da.Connection.CreateCommand()
SQL = "SELECT PK=ISNULL((SELECT TOP 1 LANDID FROM LAND ORDER BY LANDID DESC),0), SysDate=GETDATE()"
sqlCmd.CommandText = SQL
Dim dread As SqlDataReader = sqlCmd.ExecuteReader()
If dread.Read() Then
NewID = dread("PK")
SysDate = dread("SysDate")
End If
dread.Close()
bin.EndEdit()
dtChange = dt.GetChanges
If dtChange IsNot Nothing Then
Dim drow As DataRow
For Each drow in dtChange.Rows
blUpdate = False
' ส่วนของการ Validate ข้อมูล
If (drow.RowState And 20) > 0 Then
' มีการแก้ไขหรือเพิ่มข้อมูล
If <เงื่อนไขตรวจสอบความถูกต้องของข้อมูล 1> Then stErr += vbCrLf +"- ข้อผิดพลาด 1"
If <เงื่อนไขตรวจสอบความถูกต้องของข้อมูล 2> Then stErr += vbCrLf +"- ข้อผิดพลาด 2"
If stErr<>"" Then Throw New Exception(stErr)
blUpdate = True
End If
' ส่วนของการ Update User และวันที่
If blUpdate Then
If drow.RowState = DataRowStat.Added Then
NewID += 1
drow("LANDID") = NewID
drow("usrInsert") = My.User.Name
drow("dtInsert") = SysDate
End If
drow("usrModify") = My.User.Name
drow("dtModify") = SysDate
End If
Next
da.Update(dtChange)
dt.AcceptChanges()
MessageBox.Show("บันทึกข้อมูลเสร็จแล้ว ", "แจ้งให้ทราบ", MessageBoxButtons.OK, MessageBoxIcon.Information)
End If
da.Connection.Close()
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
Call Show()
End Sub
|
ประวัติการแก้ไข 2010-11-19 12:43:15 2010-11-19 12:55:58
 |
 |
 |
 |
Date :
2010-11-19 12:35:59 |
By :
watcharop |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
systex error เต็มเลยครับ
|
 |
 |
 |
 |
Date :
2010-11-19 14:42:53 |
By :
pisansri |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
มันก็จริง 
|
 |
 |
 |
 |
Date :
2010-11-19 15:30:44 |
By :
watcharop |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ไม่ต้องเขียน โค๊ดหรอกครับ ผมทำได้ละ เเค่ไป SET ฐาน เป็น auto number ก้ได้เเล้วครับ
เหลือปุ่มลบ ครับ มันยังลบออกจากฐานยังไม่ได้ครับ ออกเเต่ในฟร์อม
|
 |
 |
 |
 |
Date :
2010-11-19 15:46:58 |
By :
pisansri |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ถ้าจะบันทึกด้วยวิธีนี้ แล้วอยากถาม
ก็ตั้งกระทู้ใหม่ล่ะกันเนอะ
อันนี้มันยาวล่ะ
|
 |
 |
 |
 |
Date :
2010-11-23 15:20:45 |
By :
watcharop |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
fake name brand bags watch brands swiss all watch brands.
|
 |
 |
 |
 |
Date :
2012-08-10 07:31:47 |
By :
margaret |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|