Re: [.NET] 請問連接access一定要用oledb的規格嗎??

看板Visual_Basic作者 (RR2)時間18年前 (2007/05/30 17:01), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《rightright2 (RR2)》之銘言: : 我用odbc的規格去連,open()可以,但是執行fill()或是execReader()就會說我的 : [microsoft][ODBC microsoft Access Driver]參數太少,錯誤碼 07002 : 到底是為甚麼,有人知道怎麼解決嗎?? : 剛溫q.Q" 程式碼...我貼.. //---------------------- '引入命名空間 Imports System.Data Imports System.Data.Odbc Imports System.Configuration Imports ODBCTool Imports System Imports Microsoft.SqlServer.Server Public Class Test_Sport_Center_ Private temp_password As String Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox_TestUID.TextChanged, TextBox_Password.TextChanged End Sub Private Sub Button1_Enter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1_Enter.Click Dim password_query_string As String QueryMember(TextBox_Password.Text) ' My.Computer.Keyboard.SendKeys("{End}") End Sub '將組態檔進行加密 Public Sub ProtectionConfiguration() Dim config As Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None) ' 定義Dpapi提供者名稱. Dim provider As String = "DataProtectionConfigurationProvider" '也可以用"RsaProtectedConfigurationProvider"; Dim connStrings As ConfigurationSection = config.GetSection("connectionStrings") If (Not connStrings Is Nothing) Then If (Not connStrings.SectionInformation.IsProtected) Then If (Not connStrings.ElementInformation.IsLocked) Then connStrings.SectionInformation.ProtectSection(provider) connStrings.SectionInformation.ForceSave = True config.Save(ConfigurationSaveMode.Full) End If End If End If End Sub Function QueryPassword(ByVal keyword As String) As String Dim SQLCommand As String = "" Dim bufString As String = "" SQLCommand = "Select Member_ID from TAG WHERE TAG.UID=" & TextBox_TestUID.Text & "%" Dim dt As New DataTable CreateDataTable(SQLCommand, "TAG", dt) bufString = dt.Rows.Equals("Member_ID") bufString = Me.TextBox_TestUID.Text Return bufString ' Me.Combo_QueryItem.Items.Clear() 'For Each DR As DataRow In dt.Rows ' Me.Combo_QueryItem.Items.Add(DR("Word")) ' If (Me.Combo_QueryItem.Text = DR("Word")) Then ' RTB_ChinesExplain.Text = bufString & vbCrLf & DR("ChinesExplain").ToString() ' RTB_Phrase.Text = DR("Phrase").ToString() ' RTB_Synonym.Text = DR("Synonym").ToString() ' End If 'Next End Function Sub QueryMember(ByVal keyword As String) Dim SQLCommand As String = "" Dim bufString As String = "" SQLCommand = "Select ID,Name,Sex,Phone,Birthday,E-mail,Address,Last_Serviced_OperatorID FROM Member,TAG WHERE Member.Passwords = " & TextBox_Password.Text & " AND TAG.UID = " & TextBox_TestUID.Text & "" Dim dt As New DataTable CreateDataTable(SQLCommand, "Member", dt) Text_MemberName.Text = dt.Rows.Equals("Name") bufString = Me.TextBox_TestUID.Text End Sub 'Private Sub Combo_QueryItem_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Combo_QueryItem.TextChanged ' QueryPassword(Combo_QueryItem.Text) ' My.Computer.Keyboard.SendKeys("{End}") 'End Sub Sub CreateDataTable(ByVal SQLString As String, ByVal TableName As String, ByRef ParaDT As DataTable) Try '連線字串宣告 Dim settings As ConnectionStringSettings '↓此行不知道可不可以省略,應該是可以在此重置"ConnectingString"裡 的資料 settings = ConfigurationManager.ConnectionStrings("Test_Soprt_Cenetr.My.MySettings.ODBC_ConnectionString") MsgBox(settings.ConnectionString) 'step 1 Dim conn As OdbcConnection = New OdbcConnection("DSN=99999") 'settings.ConnectionString 'temp_password = conn.Driver() conn.Open() Dim cmd As New OdbcCommand cmd.CommandText = SQLString cmd.CommandTimeout = 20 cmd.CommandType = CommandType.Text cmd.Connection = conn Dim myReader As OdbcDataReader 'cmd = New OdbcCommand(SQLString, conn) 'step 2 Dim da As OdbcDataAdapter = New OdbcDataAdapter(SQLString, conn) Dim ds As New DataSet ' Dim dtt As DataTable 'dtt.Clear() 'step 3 myReader = cmd.ExecuteReader() Text_MemberName.Text = myReader.Item("Name") 'MsgBox(da.SelectCommand().CommandText() = SQLString) 'MsgBox(da.SelectCommand(SQLString)) 'da.Equals("Name") '' Text_MemberName.Text = da.SelectCommand().ToString 'da.Fill(ParaDT) ''填入DataTable中 ?? 'da.Fill(ds) ''填入dataSet中 ?? 'myReader = cmd.ExecuteReader() 'myReader.Read() 'myReader.GetValues("Name") 'Text_MemberName.Text = myReader.Item("Name") 'myReader.Close() 'myReader.Dispose() '//-----------------------------------// conn.Close() conn.Dispose() da.Dispose() ds.Dispose() ' ParaDT = ds.Tables(TableName) 'da.comm() 'da.SelectCommand().CommandText = "Select ID,Name,Sex,Phone,Birthday,E-mail,Address,Last_Serviced_OperatorID FROM Member,TAG WHERE Member.Passwords = " & TextBox_Password.Text & " AND TAG.UID = " & TextBox_TestUID.Text & "" 'da.Fill(ParaDT) Catch ex As Exception MsgBox("請確定Dictionary.mdb檔案存在且存放於\bin\Debug , 錯誤訊息 為: " & ex.Message.ToString()) End Try End Sub Private Sub Test_Sport_Center__Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load ProtectionConfiguration() End Sub //--------------- CreateTable中是主要出現問題的地方 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 210.209.196.27
文章代碼(AID): #16NJrDJA (Visual_Basic)
文章代碼(AID): #16NJrDJA (Visual_Basic)