Following a guide in https://docs.microsoft.com/en-us/aspnet/web-pages/overview/data/5-working-with-data, I created a simple web form in C# (Razor) to insert the Title, Genre and Year into a Movies table like below
@{
var title = "title";
var genre = "genre";
var year = "year";
if (IsPost)
{
title = Request.Form["title"];
genre = Request.Form["genre"];
year = Request.Form["year"];
var connString = string.Format("DATA SOURCE=ORCLPDB;PASSWORD=password;PERSIST SECURITY INFO=True;USER ID=userid");
var providerName = "Oracle.ManagedDataAccess.Client";
var db = Database.OpenConnectionString(connString, providerName);
var insertQuery = "INSERT INTO Movies (title, genre, year) VALUES (@0, @1, @2)";
db.Execute(insertQuery, title, genre, year);
Response.Redirect("~/Movies");
}
}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Add a Movie</title>
</head>
<body>
<h1>Add a Movie</h1>
<form method="post">
<fieldset>
<legend>Movie Information</legend>
<p>
<label for="title">Title:</label>
<input type="text" name="title" value="@Request.Form["title"]" />
</p>
<p>
<label for="genre">Genre:</label>
<input type="text" name="genre" value="@Request.Form["genre"]" />
</p>
<p>
<label for="year">Year:</label>
<input type="text" name="year" value="@Request.Form["year"]" />
</p>
<p><input type="submit" name="buttonSubmit" value="Add Movie" /></p>
</fieldset>
</form>
</body>
</html>
When executed, I keep getting the error Oracle.ManagedDataAccess.Client.OracleException: ORA-00936: missing expression which occurs at line 16
Line 14: var db = Database.OpenConnectionString(connString, providerName);
Line 15: var insertQuery = "INSERT INTO Movies (title, genre, year) VALUES (@0, @1, @2)";
Line 16: db.Execute(insertQuery, title, genre, year);
Line 17: Response.Redirect("~/Movies");
Line 18: }
The script syntax is nearly identical the guide except that oracle.manageddataaccess.client is used here. I tried to use the SQL statement directly like follows:
var db = Database.OpenConnectionString(connString, providerName);
db.Execute("INSERT INTO Movies (title, genre, year) VALUES (@title, @genre, @year)");
Response.Redirect("~/Movies");
but the error remains.
I'll really appreciate it if someone can tell me what's causing the error.