Программа останавливается на линии adapter.Fill(datatable)
, выдавая ошибку: oleDbException был необработанным: значение не задано для одного или нескольких требуемых параметров.Не задано значение для одного или нескольких требуемых параметров/SQL должно быть правильным
Когда я копирую SQL в доступе ошибок не дал ..
SQL-:
public static List<Movie> AllMoviesSameActor(string lastName)
{
string command;
command = "SELECT movieId, name, headActor, Director, ReleaseDate, lenghtMin"
+ "FROM Movies" +
" WHERE headactor = " + lastName ;
OleDbDataAdapter adapter = new OleDbDataAdapter(command, connectionString);
DataTable datatable = new DataTable();
adapter.Fill(datatable);
List<Movie> list= new List<Movie>();
for (int i = 0; i < datatable.Rows.Count; i++)
{
Movie movie = new Movie();
movie.movieId = datatable.Rows[i].Field<int>("movieId");
movie.name = datatable.Rows[i].Field<string>("name");
movie.headActor = datatable.Rows[i].Field<string>("headActor");
movie.director = datatable.Rows[i].Field<string>("director");
movie.releaseDate = datatable.Rows[i].Field<DateTime>("releaseDate");
movie.lenghtMin = datatable.Rows[i].Field<int>("lenghtMin");
list.Add(movie);
}
return list;
}
Кодекс от формы:
public FormMoviesSameActor()
{
InitializeComponent();
List<Actor> actors = Actor.AllActors();
comboBoxActeur.DataSource = actors;
comboBoxActeur.DisplayMember = "LastName";
comboBoxActeur.ValueMember = "LastName";
}
private void buttonSearchMovies_Click(object sender, EventArgs e)
{
Actor dedicatedActor = new Actor();
dedicatedActor.LastName = Convert.ToString(comboBoxActeur.SelectedValue);
listBox1.DataSource = dedicatedActor.Movies;
listBox1.DisplayMember = "AllData";
}
Метод Actor.Movies является описанного ниже
public List<Movie> Movies
{
get { return Movie.AllMoviesSameActor(this.lastName);
}
+1 для указания параметризованных запросов. – Brian
Добавление атрибутов строки вокруг lastName делало трюк. Это для школьного проекта для нашего первого семестрового класса программирования, профессор сказал, что это плохой метод, но нам нужно сначала изучить основы. – user3127227
@ пользователь3127227 Отлично. Рад, что это сработало. – TyCobb