vendredi 6 mai 2016

Getting error when i am trying to insert elements in a database using SQLite in c#

I am trying to insert elements in a database using SQLite in C#, but i always received error:

Object reference not set to an instance of an object.

The function is working only if a delete the query which is checking if an elements exits in the table. The code:

public void addFisier(DirectorVideo[] directors)
        {
            var dbCommand = new SQLiteCommand();

            dbCommand.Connection = _dbConnection;
            try {
                _dbConnection.Open();
                dbCommand.Transaction = _dbConnection.BeginTransaction();
                for (int i = 0; i < directors.Length - 1; i++)
                {
                    for (int j = 0; j < directors[i].nrFisiere; j++)
                    {
                        dbCommand.CommandText = ("SELECT count(*) FROM Fisiere WHERE Nume=' " + directors[i].fisiere[j].numeFisier + "'");
                        int numara = Convert.ToInt32(dbCommand.ExecuteScalar());
                        if (numara == 0)
                        {
                            dbCommand.CommandText = "insert into Fisiere(Nume, Dimensiune, Data, Rating_imdb, Cale) values(@nume, @dimensiune, @data, @rating_imdb, @cale)";
                            var numeParam = new SQLiteParameter("@nume");
                            numeParam.Value = directors[i].fisiere[j].numeFisier;
                            var dimensiuneParam = new SQLiteParameter("@dimensiune");
                            dimensiuneParam.Value = directors[i].fisiere[j].dimensiune;
                            var dataParam = new SQLiteParameter("@data");
                            dataParam.Value = directors[i].fisiere[j].data;
                            var ratingParam = new SQLiteParameter("rating_imdb");
                            IMDb rat = new IMDb(directors[i].fisiere[j].numeFisier);
                            ratingParam.Value = rat.Rating;
                            var caleParam = new SQLiteParameter("cale");
                            caleParam.Value = directors[i].cale;

                            Console.WriteLine(numeParam.Value);
                            Console.WriteLine(dimensiuneParam.Value);
                            Console.WriteLine(dataParam.Value);
                            Console.WriteLine(ratingParam.Value);
                            Console.WriteLine(caleParam.Value);


                            dbCommand.Parameters.Add(numeParam);
                            dbCommand.Parameters.Add(dimensiuneParam);
                            dbCommand.Parameters.Add(dataParam);
                            dbCommand.Parameters.Add(ratingParam);
                            dbCommand.Parameters.Add(caleParam);


                            dbCommand.ExecuteNonQuery();
                            dbCommand.Transaction.Commit();




                        }
                        else Console.WriteLine("Exista");


                    }

                }







            }
            catch (Exception)
            {
                Console.WriteLine("muie");
                dbCommand.Transaction.Rollback();
                throw;
            }
            finally
            {
                if (_dbConnection.State != ConnectionState.Closed) _dbConnection.Close();

            }
        }

Aucun commentaire:

Enregistrer un commentaire