使用ASP.net向MS Access添加数据
我的学校项目是建立一个网站,人们可以在那里出售/购买旧的学校用品,如计算器等。我在Microsoft Visual Studio中使用ASP.net和vb.net 我的问题是,我不知道如何将网站上填写的数据添加到MS Access数据库文件中。问题是信息分布在两个表中 我曾尝试使用两种不同的SQL语句,每个表使用一种,但这也行不通。我已经改变了数据库的格式,我认为现在的问题是输入两个表之间的关系,但我不知道如何输入 我现在正在运行这个代码使用ASP.net向MS Access添加数据,asp.net,vb.net,ms-access,ado.net,Asp.net,Vb.net,Ms Access,Ado.net,我的学校项目是建立一个网站,人们可以在那里出售/购买旧的学校用品,如计算器等。我在Microsoft Visual Studio中使用ASP.net和vb.net 我的问题是,我不知道如何将网站上填写的数据添加到MS Access数据库文件中。问题是信息分布在两个表中 我曾尝试使用两种不同的SQL语句,每个表使用一种,但这也行不通。我已经改变了数据库的格式,我认为现在的问题是输入两个表之间的关系,但我不知道如何输入 我现在正在运行这个代码 Protected Sub bntVerzend
Protected Sub bntVerzenden_Click(sender As Object, e As EventArgs) Handles bntVerzenden.Click
Dim VerkopenConn As New OleDb.OleDbConnection
Dim VerkopenCommArtikel, VerkopenCommGebruiker As New OleDb.OleDbCommand
VerkopenConn.ConnectionString = My.Settings.SvShopConnection
VerkopenCommArtikel.Connection = VerkopenConn
VerkopenCommGebruiker.Connection = VerkopenConn
'Gebruiker gegevens aan de database toevoegen
VerkopenCommGebruiker.CommandText = "INSERT INTO tblGebruiker (GebruikersNaam, GebruikersVoornaam, GebruikersEmail, GebruikersGSM) VALUES (@GebruikersNaam, @GebruikersVoornaam, @GebruikersEmail, @GebruikersGSM)"
VerkopenCommGebruiker.Parameters.AddWithValue("@GebruikersNaam", txtNaam.Text)
VerkopenCommGebruiker.Parameters.AddWithValue("@GebruikersVoornaam", txtVNaam.Text)
VerkopenCommGebruiker.Parameters.AddWithValue("@GebruikersEmail", txtEmail.Text)
VerkopenCommGebruiker.Parameters.AddWithValue("@GebruikersGSM", txtGsm.Text)
'Artikel gegevens aan de database toevoegen
VerkopenCommArtikel.CommandText = "INSERT INTO tblArtikel (ArtikelBeschrijving, ArtikelPrijs, RubriekNaam, ArtikelAankoopdatum, ArtikelTekoopgezet, ArtikelBeschikbaar) VALUES ( @ArtikelBeschrijving, @ArtikelPrijs, @RubriekNaam, @ArtikelAankoopdatum, @ArtikelTekoopgezet, @ArtikelBeschikbaar)"
VerkopenCommArtikel.Parameters.AddWithValue("@ArtikelBeschrijving", txtArtikelBeschrijving.Text)
VerkopenCommArtikel.Parameters.AddWithValue("@ArtikelPrijs", txtArtikelPrijs.Text)
VerkopenCommArtikel.Parameters.AddWithValue("@RubriekNaam", lstRubriek.SelectedItem.ToString)
VerkopenCommArtikel.Parameters.AddWithValue("@ArtikelAankoopdatum", CalAankoop.SelectedDate)
VerkopenCommArtikel.Parameters.AddWithValue("@ArtikelTekoopgezet", calVerkoop.SelectedDate)
VerkopenCommArtikel.Parameters.AddWithValue("@ArtikelBeschikbaar", True)
If VerkopenConn.State = ConnectionState.Closed Then VerkopenConn.Open()
VerkopenCommGebruiker.ExecuteNonQuery()
VerkopenCommArtikel.ExecuteNonQuery()
End Sub
末级
在第二次执行查询时出现此错误:
System.Data.dll中发生“System.Data.OleDb.OledBeException”类型的异常,但未在用户代码中处理
其他信息:无法添加或更改记录,因为表“tblGebruiker”中需要相关记录
第一个查询起作用,该数据已添加到数据库中
下面是数据库关系
您的第一个异常是因为查询中缺少一列。第二个异常可能是由于您在
tblArtikel
和tblRubriek
之间定义了一对一的关系造成的。在本例中,您需要将关系更改为一对多以允许重复tblRubriek
将是“一”面,而tblArtikel
将是“多”面。因为在tblRubriek
中有一个主键,它与tblArtikel
中的“多”行关联 它运行时是否会出现任何错误?另外,您可以发布一些有关access数据库的详细信息吗?您在第二次查询的列部分缺少了RubriekID
。@amber编辑了代码并编辑了问题。@这些关系可以在这篇文章中看到。@ThimoDemey是的,我后来又看到了。作为测试,尝试删除tblArtikel
和tblGebruiker
之间的关系。然后运行查询。因此,在“tblArtikel”中,我必须使用“RubriekNaam”而不是“RubriekID”,并在“tblRubriek”中建立与“RubriekNaam”的关系,对吗?RubriekID
不是tblArtikel
中的主键,因此插入它应该没有问题,但您需要提到它需要被插入“在tblArtikel(RubriekID、ArtikelBeschrijving、Artikelaprijs、Artikelaaankoopdatum、ArtikelTekoopgezet)中插入值(@RubriekID、@ArtikelBeschrijving、@Artikelaprijs、@Artikelaaankoopdatum、@ArtikelTekoopgezet)“@ThimoDemey对不起。正如我上面提到的,Amber发布的查询是您应该有的。但您定义的关系可能是问题所在。我已更改了查询,但仍有相同的错误。