使用ASP.net(VB.net)插入没有重复的MS Access

时间:2022-07-24 07:36:38

I am building an e-commerce website as a school project. How can I make sure that I won't have duplicate users since this is the page where they have to fill in their user details.

我正在建立一个电子商务网站作为学校项目。如何确保我不会有重复的用户,因为这是他们必须填写用户详细信息的页面。

使用ASP.net(VB.net)插入没有重复的MS Access

This is the code I am using right now and the ExecuteNonquery doesn't work. It doesn't give any errors, it just skips it.

这是我现在使用的代码,ExecuteNonquery不起作用。它没有给出任何错误,它只是跳过它。

Protected Sub bntVerzenden_Click(sender As Object, e As EventArgs) Handles bntVerzenden.Click

    Dim sqlCommand As String
    Dim intGebruikersID, intRubriekID As Integer
    Dim VerkopenConn As New OleDb.OleDbConnection
    Dim VerkopenCommArtikel, VerkopenCommGebruiker, GebruikersIDComm, RubriekIDComm, EmailComm As New OleDb.OleDbCommand



    VerkopenConn.ConnectionString = My.Settings.SvShopConnection
    VerkopenCommArtikel.Connection = VerkopenConn
    VerkopenCommGebruiker.Connection = VerkopenConn
    GebruikersIDComm.Connection = VerkopenConn
    RubriekIDComm.Connection = VerkopenConn
    EmailComm.Connection = VerkopenConn


    'Email Controleren
    sqlCommand = "SELECT * FROM tblGebruiker WHERE GebruikersEmail = '" & txtEmail.Text & "'"

    EmailComm.CommandText = sqlCommand
    If VerkopenConn.State = ConnectionState.Closed Then VerkopenConn.Open()

    If EmailComm.ExecuteNonQuery = 0 Then


        '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)



        VerkopenCommGebruiker.ExecuteNonQuery()


        'GebruikersID uit de database halen
        GebruikersIDComm.CommandText = "SELECT tblGebruiker.GebruikersID FROM tblGebruiker WHERE tblGebruiker.GebruikersNaam = @Naam AND tblGebruiker.GebruikersVoornaam = @VNaam;"

        GebruikersIDComm.Parameters.AddWithValue("@Naam", txtNaam.Text)
        GebruikersIDComm.Parameters.AddWithValue("@VNaam", txtVNaam.Text)

        intGebruikersID = Integer.Parse(GebruikersIDComm.ExecuteScalar)

        'RubriekID uit de database halen
        RubriekIDComm.CommandText = "SELECT tblRubriek.RubriekID FROM tblRubriek WHERE tblRubriek.RubriekNaam = @RubriekNaam"

        RubriekIDComm.Parameters.AddWithValue("@RubriekNaam", lstRubriek.SelectedItem.ToString)
        intRubriekID = Integer.Parse(RubriekIDComm.ExecuteScalar)

        'Artikel gegevens aan de database toevoegen
        VerkopenCommArtikel.CommandText = "INSERT INTO tblArtikel (ArtikelBeschrijving, ArtikelPrijs, RubriekID, ArtikelAankoopdatum, ArtikelTekoopgezet, ArtikelBeschikbaar, GebruikersID) VALUES ( @ArtikelBeschrijving, @ArtikelPrijs, @RubriekID, @ArtikelAankoopdatum, @ArtikelTekoopgezet, @ArtikelBeschikbaar, @GebruikersID)"

        VerkopenCommArtikel.Parameters.AddWithValue("@ArtikelBeschrijving", txtArtikelBeschrijving.Text)
        VerkopenCommArtikel.Parameters.AddWithValue("@ArtikelPrijs", txtArtikelPrijs.Text)
        VerkopenCommArtikel.Parameters.AddWithValue("@RubriekID", intRubriekID)
        VerkopenCommArtikel.Parameters.AddWithValue("@ArtikelAankoopdatum", CalAankoop.SelectedDate)
        VerkopenCommArtikel.Parameters.AddWithValue("@ArtikelTekoopgezet", calVerkoop.SelectedDate)
        VerkopenCommArtikel.Parameters.AddWithValue("@ArtikelBeschikbaar", True)
        VerkopenCommArtikel.Parameters.AddWithValue("@GebruikersID", intGebruikersID)

        VerkopenCommArtikel.ExecuteNonQuery()



        VerkopenConn.Close()

    Else




        'GebruikersID uit de database halen
        GebruikersIDComm.CommandText = "SELECT tblGebruiker.GebruikersID FROM tblGebruiker WHERE tblGebruiker.GebruikersNaam = @Naam AND tblGebruiker.GebruikersVoornaam = @VNaam;"

        GebruikersIDComm.Parameters.AddWithValue("@Naam", txtNaam.Text)
        GebruikersIDComm.Parameters.AddWithValue("@VNaam", txtVNaam.Text)

        intGebruikersID = Integer.Parse(GebruikersIDComm.ExecuteScalar)

        'RubriekID uit de database halen
        RubriekIDComm.CommandText = "SELECT tblRubriek.RubriekID FROM tblRubriek WHERE tblRubriek.RubriekNaam = @RubriekNaam"

        RubriekIDComm.Parameters.AddWithValue("@RubriekNaam", lstRubriek.SelectedItem.ToString)
        intRubriekID = Integer.Parse(RubriekIDComm.ExecuteScalar)

        'Artikel gegevens aan de database toevoegen
        VerkopenCommArtikel.CommandText = "INSERT INTO tblArtikel (ArtikelBeschrijving, ArtikelPrijs, RubriekID, ArtikelAankoopdatum, ArtikelTekoopgezet, ArtikelBeschikbaar, GebruikersID) VALUES ( @ArtikelBeschrijving, @ArtikelPrijs, @RubriekID, @ArtikelAankoopdatum, @ArtikelTekoopgezet, @ArtikelBeschikbaar, @GebruikersID)"

        VerkopenCommArtikel.Parameters.AddWithValue("@ArtikelBeschrijving", txtArtikelBeschrijving.Text)
        VerkopenCommArtikel.Parameters.AddWithValue("@ArtikelPrijs", txtArtikelPrijs.Text)
        VerkopenCommArtikel.Parameters.AddWithValue("@RubriekID", intRubriekID)
        VerkopenCommArtikel.Parameters.AddWithValue("@ArtikelAankoopdatum", CalAankoop.SelectedDate)
        VerkopenCommArtikel.Parameters.AddWithValue("@ArtikelTekoopgezet", calVerkoop.SelectedDate)
        VerkopenCommArtikel.Parameters.AddWithValue("@ArtikelBeschikbaar", True)
        VerkopenCommArtikel.Parameters.AddWithValue("@GebruikersID", intGebruikersID)

        VerkopenCommArtikel.ExecuteNonQuery()



        VerkopenConn.Close()

    End If



    System.Web.HttpContext.Current.Response.Write("<SCRIPT LANGUAGE=""JavaScript"">alert(""Jouw artikel staat nu te koop"")</SCRIPT>")

End Sub

2 个解决方案

#1


0  

You should hace some id field, like email or full name. You could create a unique index on this columna and catch the exception on insert. Or fire a first query to verify if the user is already added.

你应该有一些id字段,比如电子邮件或全名。您可以在此columna上创建唯一索引并在插入时捕获异常。或者触发第一个查询以验证是否已添加用户。

#2


0  

You can check whether the emailid that user provide is already exist in your database or not.Try this code:-

您可以检查用户提供的emailid是否已存在于您的数据库中。请尝试以下代码: -

 SqlConnection Conn=new SqlConnection(your_connectionstring);
 SqlCommand command = new SqlCommand("select * from tblGebruiker where GebruikersEmail='" + emailid + "'", Conn);
 DataTable dtl = new DataTable();
 SqlDataAdapter sqlDA = new SqlDataAdapter(command);
 sqlDA.Fill(dtl);


if (dtl.Rows.Count > 0)
{
    Response.Write("<script>alert('User already registered')</script>");
}
else
{
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)

    If VerkopenConn.State = ConnectionState.Closed Then VerkopenConn.Open()
    VerkopenCommGebruiker.ExecuteNonQuery()
}

#1


0  

You should hace some id field, like email or full name. You could create a unique index on this columna and catch the exception on insert. Or fire a first query to verify if the user is already added.

你应该有一些id字段,比如电子邮件或全名。您可以在此columna上创建唯一索引并在插入时捕获异常。或者触发第一个查询以验证是否已添加用户。

#2


0  

You can check whether the emailid that user provide is already exist in your database or not.Try this code:-

您可以检查用户提供的emailid是否已存在于您的数据库中。请尝试以下代码: -

 SqlConnection Conn=new SqlConnection(your_connectionstring);
 SqlCommand command = new SqlCommand("select * from tblGebruiker where GebruikersEmail='" + emailid + "'", Conn);
 DataTable dtl = new DataTable();
 SqlDataAdapter sqlDA = new SqlDataAdapter(command);
 sqlDA.Fill(dtl);


if (dtl.Rows.Count > 0)
{
    Response.Write("<script>alert('User already registered')</script>");
}
else
{
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)

    If VerkopenConn.State = ConnectionState.Closed Then VerkopenConn.Open()
    VerkopenCommGebruiker.ExecuteNonQuery()
}