2013-02-26 78 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

相关问题