简体   繁体   中英

Insert Data in to ms access C# ASP.Net

i am trying to insert data from a form to 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 data base is structured like:

|username | password | name | email |

but when ever i run it i get an error like

System.Data.OleDb.OleDbException: Number of query values and destination fields are not the same. at System.Data.

i am not sure what i am doing wrong i am a beginner in C#

You have an extra email you are passing:

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)";

Actually your table contains four values, but you are passing 5 values in that query. That is the mistake.

Your Code:

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

tbEmail.Text is repeating Twice.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM