2014-05-19 68 views
-2

我得到這個錯誤,我不知道如何解決它的人在這裏的幫助是我的代碼。此外,我正在使用Microsoft Access數據庫(.accdb)和我的C:\ Users ******* \ Desktop 我得到錯誤[IM002] [Microsoft] [ODBC驅動程序管理器]未找到數據源名稱並且沒有默認驅動程序中指定Visual Basic 2010錯誤[IM002] [微軟] [ODBC驅動程序管理器]數據源名稱未找到,沒有指定默認驅動程序

昏暗STRSQL作爲字符串= 「INSERT INTO *從表1」

昏暗strPath的作爲字符串= 「提供者= Microsoft.ACE.OLEDB.12.0;」 & 「數據源= C:\用戶******** \桌面\ VBgameDatabase.accdb」

Dim odaTravel As New OleDb.OleDbDataAdapter(strSql, strPath) 
    Dim datCost As New DataTable 
    Dim Connection2 As New System.Data.Odbc.OdbcConnection(strPath) 
    Connection2.Open() 
    Dim cmd As OdbcCommand = New OdbcCommand("INSERT INTO accdb (Slot, Health, Gold, Level, XP, Strength, Vitality, Agility) VALUES (?, ?, ?, ?, ?, ?, ?, ?)", Connection2) 
    cmd.Parameters.Add("@Health", OdbcType.VarChar, 255).Value = Battle.lblPlayerHealth.Text 
    cmd.ExecuteNonQuery() 
    cmd.Parameters.Add("@Gold", OdbcType.VarChar).Value = Inventory.lblMoney.Text 
    cmd.ExecuteNonQuery() 
    cmd.Parameters.Add("@Level", OdbcType.VarChar, 255).Value = Inventory.lblLevel.Text 
    cmd.ExecuteNonQuery() 
    cmd.Parameters.Add("@XP", OdbcType.VarChar, 255).Value = Inventory.lblXP.Text 
    cmd.ExecuteNonQuery() 
    cmd.Parameters.Add("@Strength", OdbcType.VarChar, 255).Value = Stats.lblStrength.Text 
    cmd.ExecuteNonQuery() 
    cmd.Parameters.Add("@Vitality", OdbcType.VarChar, 255).Value = Stats.lblVitality.Text 
    cmd.ExecuteNonQuery() 
    cmd.Parameters.Add("@Agility", OdbcType.VarChar, 255).Value = Stats.lblAgility.Text 
    cmd.ExecuteNonQuery() 

回答

0

首先,通過ODBC訪問連接字符串以下

"Driver={Microsoft Access Driver (*.mdb, *.accdb)};" & _ 
"Dbq=C:\Users********\Desktop\VBgameDatabase.accdb;Uid=Admin;Pwd=" 

請參閱connectionstrings.com

最後,您添加了7個參數,但表中列出的字段爲8,因此您需要另一個參數。當然,在添加完所有參數之後,ExecuteNonQuery應該只調用一次。

Dim Connection2 As New System.Data.Odbc.OdbcConnection(strPath) 
Connection2.Open() 
Dim cmd As OdbcCommand = New OdbcCommand("INSERT INTO accdb " & _ 
    "(Slot, Health, Gold, Level, XP, Strength, Vitality, Agility) " & _ 
    "VALUES (?, ?, ?, ?, ?, ?, ?, ?)", Connection2) 

' MISSING PARAMETER FOR SLOT FIELD 
' cmd.Parameters.Add("@Slot", ......) 

cmd.Parameters.Add("@Health", OdbcType.VarChar, 255).Value = Battle.lblPlayerHealth.Text 
cmd.Parameters.Add("@Gold", OdbcType.VarChar).Value = Inventory.lblMoney.Text 
cmd.Parameters.Add("@Level", OdbcType.VarChar, 255).Value = Inventory.lblLevel.Text 
cmd.Parameters.Add("@XP", OdbcType.VarChar, 255).Value = Inventory.lblXP.Text 
cmd.Parameters.Add("@Strength", OdbcType.VarChar, 255).Value = Stats.lblStrength.Text 
cmd.Parameters.Add("@Vitality", OdbcType.VarChar, 255).Value = Stats.lblVitality.Text 
cmd.Parameters.Add("@Agility", OdbcType.VarChar, 255).Value = Stats.lblAgility.Text 
cmd.ExecuteNonQuery() 

順便問一下,你確定你的桌子叫做ACCDB嗎?這似乎有點奇怪..

+0

這固定幾乎所有,但我仍然無法使Connection2.Open()工作。 Insert Into後,它也改爲Table1。 – Justin

+0

你現在收到什麼錯誤? – Steve

+0

出現相同的錯誤。錯誤[IM002] [Microsoft] [ODBC驅動程序管理器]未找到數據源名稱並且沒有指定默認驅動程序 – Justin

相關問題