按钮点击插入到Access数据库(没有错误,但不工作)
问题描述:
我试图从一个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(); }
答
我想你想
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);
如果您只是要复制/粘贴代码块,请考虑添加注释/摘要以解释更改 - 例如,使用命名参数代替'?'占位符... – Basic 2013-02-26 18:39:18
现在我收到错误 异常详细信息:System.Data.OleDb.OleDbException:溢出 错误在此行。 com.ExecuteNonQuery(); – Michael 2013-02-26 18:50:22
也许你插入的值太宽(你最后定义为varchar(20)并插入了21个字符的姓氏) – 2013-02-26 18:51:24