Inserting data into ms-access c # ASP.Net

I am trying to insert data from a form into msaccess database, I have the current code

OleDbConnection con = new OleDbConnection();
OleDbCommand cmd = new OleDbCommand();
con.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\kunz\Documents\Visual Studio 2010\WebSites\Assignment_2_Mark_2\App_Data\nuclearpopsicledb.mdb";
cmd.Connection = con;
string sql = "insert into users values('"+tbUname.Text+"','"+tbPass.Text+"','"+tbName.Text+"','"+tbEmail.Text+"','"+tbEmail.Text+"')";

try
{
    con.Open();
    cmd.CommandText = sql;
    cmd.ExecuteNonQuery();
    con.Close();
    Label1.Text = "TRY";
}
catch(Exception ex)
{
    Label1.Text = ex.ToString();
    con.Close();
}

      

my database is structured like this:

| username | password | name | email |

but when i run it i get error like

System.Data.OleDb.OleDbException: The number of values ​​for the request and the target do not match. in System.Data.

I'm not sure what I am doing wrong I am new to C #

+3


source to share


2 answers


You have an additional email that you transmit:



cmd.Parameters.AddWithValue("@userName", tbUname.Text.Trim());
cmd.Parameters.AddWithValue("@password", tbPass.Text.Trim());
cmd.Parameters.AddWithValue("@Name", tbName.Text.Trim());
cmd.Parameters.AddWithValue("@Email", tbEmail.Text.Trim());

string sql = 
    "insert into users " +
    "values(@userName, @password, @Name, @Email)";

      

+3


source


Your table actually contains four values, but you are passing 5 values ​​in this query. This is mistake.

Your code:



string sql = "insert into users values('"+tbUname.Text+"','"+tbPass.Text+"','"+tbName.Text+"','"+tbEmail.Text+"','"+tbEmail.Text+"')";

      

tbEmail.Text

repeated twice.

+1


source







All Articles