2013-02-26 51 views
1

我試圖從一個Web窗體插入數據的用戶輸入到Access數據庫。我使用以下字段(FName,LName,State,Address,Zip,Telephone)創建了Access數據庫,並將其放在我的代碼文件中名爲App_Data \ Registrationinfo.mbd的文件夾中。按鈕點擊插入到Access數據庫(沒有錯誤,但不工作)

當用戶訪問網站並註冊參加今年夏天的會議時,他們會在文本框中提供所提到的字段,一旦他們點擊繼續,就會發布帶有標籤的跨頁發佈,並與用戶驗證信息是正確。然後,單擊Web表單上的「提交」按鈕,他們輸入的信息將被放入Access數據庫。任何幫助,將不勝感激。

我收到任何錯誤,並且當他們單擊提交但正在將信息放入數據庫時​​,正確的頁面重定向正在工作。

注意:這是使用C#編寫的主頁面。 Access中的表被稱爲UserInfo,只有字段FName和LName只是爲了保持簡單。

protected void submitButton_Click(object sender, EventArgs e) 
    { 
     string constr = @"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=U:\App_Data\Registrationinfo.mbd"; 
     string cmdstr = "insert into UserInfo(FName, LName)values(?, ?)"; 

     OleDbConnection con = new OleDbConnection(constr); 
     OleDbCommand com = new OleDbCommand(cmdstr, con); 
     con.Open(); 
     com.Parameters.AddWithValue("?", labelFirstName.Text); 
     com.Parameters.AddWithValue("?", labelLastName.Text); 
     com.ExecuteNonQuery(); 
     con.Close(); 
    } 

回答

2

我想你想

protected void submitButton_Click(object sender, EventArgs e) 
    { 
     string constr = @"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=U:\App_Data\Registrationinfo.mbd"; 
     string cmdstr = "insert into UserInfo(FName, LName) values(@First, @Last)"; 

     OleDbConnection con = new OleDbConnection(constr); 
     OleDbCommand com = new OleDbCommand(cmdstr, con); 
     con.Open(); 
     com.Parameters.AddWithValue("@First", labelFirstName.Text); 
     com.Parameters.AddWithValue("@Last", labelLastName.Text); 
     com.ExecuteNonQuery(); 
     con.Close(); 
    } 

名稱您在這條線的參數:

string cmdstr = "insert into UserInfo(FName, LName) values(@First, @Last)"; 

而且使用名稱使用Parameters.AddWithValues:

com.Parameters.AddWithValue("@First", labelFirstName.Text); 
    com.Parameters.AddWithValue("@Last", labelLastName.Text); 
+0

如果您只是要複製/粘貼代碼塊,請考慮添加註釋/摘要以解釋更改 - 例如,使用命名參數代替'?'佔位符... – Basic 2013-02-26 18:39:18

+0

現在我收到錯誤 異常詳細信息:System.Data.OleDb.OleDbException:溢出 錯誤在此行。 com.ExecuteNonQuery(); – Michael 2013-02-26 18:50:22

+0

也許你插入的值太寬(你最後定義爲varchar(20)並插入了21個字符的姓氏) – 2013-02-26 18:51:24

相關問題