none
新增寫入資料庫的疑問 RRS feed

  • 問題

  • 請問各位高手,我寫了一個很陽春的借書管理程式,但發現有一個地方一且無法突破,所以想請高手們給我點意見,以下是我的程式碼

    Public Class Form21


        Private Sub Form21_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Dim oledbl As New OleDbConnection
            Dim oledataset1 As New DataSet
            oledbl.ConnectionString = "Provider=microsoft.jet.oledb.4.0;Data Source=c:\book.mdb"
            oledbl.Open()
            If ConnectionState.Open Then
                Dim oledataAdapter As OleDbDataAdapter = New OleDbDataAdapter("select 識別碼,姓名,借出出日期,借出時間,借出書號,借出書名,還回日期,還回時間 from 借書系統 ORDER BY 識別碼 DESC", oledbl)
                oledataAdapter.Fill(oledataset1, "借書系統")
                DataGridView1.DataSource = oledataset1.Tables("借書系統")
            End If
        End Sub

        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim oledbl As New OleDbConnection
            oledbl.ConnectionString = "provider = microsoft.jet.oledb.4.0; data source=\\192.168.0.13\vernal-system$\125.mdb"
            oledbl.Open()
            Dim cmd As New OleDbCommand
            cmd.Connection = oledbl
            cmd.CommandText = "Insert into 借書系統 (姓名,借出日期,借出時間,借出書號,借出書名,歸還日期,歸還時間) values ('" + TextBox.Text + "'" + ",'" + DateTimePicker.Text + "'" + ",'" + DateTimePicker1.Text + "'" + ",'" + TextBox2.Text + "'" + ",'" + TextBox3.Text + "'" + ",'" + DateTimePicker3.Tex + "'" + ",'" + DateTimePicker4.Tex + "')"
          cmd.ExecuteNonQuery()       

       End Sub
    End Clas

    假設今天我借出的時後並沒有歸還日期,如果今天同學把書歸還了,我想透過識別碼來修改該欄新增歸還日期及歸還時間,請問高手們我該如何修改我的程式碼。

    謝謝指導

    2010年5月26日 上午 01:59

解答

  • 妳想要的結果是否為這樣?

    拉一個button及一個textbox或其他元件,把下面的程式碼放在button裡面

     Dim i, num As Integer
            Dim r As String
            Randomize()
            TextBox6.Text = ""
            '先讓Text1空白
            '因為需要參與亂數優選的數字包括0~9、小寫26個字母以及大寫26個字母
            '共有62個數字或字母加入亂數選取
            '抽選方式可重複選取
            '就像是有62顆球等你抽選
            '抽到之後要再放回桶子等待下次抽選
            '因此每次抽選都是62顆球
            '因此可以直接讓亂數抽選0~61的數字 (共62個)
            '讓0~9為數字0~9
            '10~35為大寫26個字母
            '36~61為小寫26個字母
            For i = 1 To 6 '選六顆球
                num = Int(Rnd() * 62) '亂數產生0~61之間的數字
                If num >= 36 Then '轉換為小寫字母
                    '小寫字母為ASCII CODE 97~122編號的字元
                    '所以要讓號碼加上61才會成為97~122
                    '再經過轉換就會是小寫字元
                    r = Chr(num + 61)
                ElseIf num >= 10 Then '轉換為大寫字母
                    '大寫字母為ASCII CODE 65~90編號的字元
                    '所以要讓號碼加上55才會成為65~90
                    '再經過轉換就會是大寫字元
                    r = Chr(num + 55)
                Else '0~9數字直接轉換成數字字串
                    r = CStr(num)
                End If
                TextBox6.Text = TextBox6.Text + r
            Next i

    • 已標示為解答 陳嘉樺 2010年5月30日 下午 04:25
    2010年5月29日 上午 05:41

所有回覆