2017-02-17 54 views
0

我試圖從網頁表單中取數據並將其放置在ms-access數據庫中。這是在aspx.vb頁面(至今)的代碼如下列出,但是當我運行它的cmd.ExecuteNonQuery()拋出了使用asp.net將網頁表單數據插入ms-access

「爲一個或多個必需的參數給出沒有價值。」

這是爲什麼?代碼應該讀什麼?

Protected Sub RegButton_Click(sender As Object, e As EventArgs) Handles RegButton.Click 
    Dim con As New OleDb.OleDbConnection 
    Dim cmd As New OleDb.OleDbCommand 
    Dim Sql As String 

    con.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\Users.accdb;Persist Security Info=True" 

    con.Open() 

    Sql = "INSERT INTO Users.Personnel (FirstName, LastName, Address, Email, Username, UserPassword) VALUES (@first, @last, @addr, @email, @uname, @pwd) " 
    cmd = New OleDb.OleDbCommand(Sql, con) 
    cmd.ExecuteNonQuery() 
    MsgBox("saved") 

    cmd.Parameters.AddWithValue("@first", FirstBox.Text) 
    cmd.Parameters.AddWithValue("@last", LastBox.Text) 
    cmd.Parameters.AddWithValue("@addr", AddressBox.Text) 
    cmd.Parameters.AddWithValue("@email", EmailBox.Text) 
    cmd.Parameters.AddWithValue("@uname", UserBox.Text) 
    cmd.Parameters.AddWithValue("@pwd", PwdBox.Text) 

    con.Close() 

End Sub 

回答

1

傳遞參數嘗試此之前,你不能執行查詢。

con.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\Users.accdb;Persist Security Info=True" 

con.Open() 

Sql = "INSERT INTO Users.Personnel (FirstName, LastName, Address, Email, Username, UserPassword) VALUES (@first, @last, @addr, @email, @uname, @pwd) " 
cmd = New OleDb.OleDbCommand(Sql, con) 


cmd.Parameters.AddWithValue("@first", FirstBox.Text) 
cmd.Parameters.AddWithValue("@last", LastBox.Text) 
cmd.Parameters.AddWithValue("@addr", AddressBox.Text) 
cmd.Parameters.AddWithValue("@email", EmailBox.Text) 
cmd.Parameters.AddWithValue("@uname", UserBox.Text) 
cmd.Parameters.AddWithValue("@pwd", PwdBox.Text) 
cmd.ExecuteNonQuery() 
MsgBox("saved") 
con.Close() 

末次

+0

謝謝阿米特。一個簡單的解決方案,讓我覺得不容易發現它! –