Example #1
0
        public static void brwBook(Book b, Borrower br)
        {
            SQLiteConnection conn = new SQLiteConnection("data source=libDB.sqlite;");
            SQLiteCommand cmd;
            string sql;
            int rowID = 0;
            try
            {
                conn.Open();
                sql = $"SELECT ROWID FROM bookData WHERE bookName = \"{b.bookName}\" AND ISBN = \"{b.ISBN}\" AND writer LIKE \"%{b.writer}%\";";
                cmd = new SQLiteCommand(sql, conn);
                SQLiteDataReader reader = cmd.ExecuteReader();
                if (reader.HasRows) rowID = Convert.ToInt32(reader["ROWID"]);

                sql = $"SELECT * FROM bookData WHERE bookName = \"{b.bookName}\" AND ISBN = \"{b.ISBN}\" AND writer LIKE \"%{b.writer}%\";";
                cmd = new SQLiteCommand(sql, conn);
                reader = cmd.ExecuteReader();
                if (reader.HasRows)
                {
                    if (Convert.ToInt32(reader["left"]) > 0)
                    {
                        try
                        {
                            sql = $"INSERT INTO borrowData VALUES (\"{br.name}\", \"{DateTime.Now}\", \"{rowID}\");";
                            cmd = new SQLiteCommand(sql, conn);
                            cmd.ExecuteNonQuery();
                            sql = $"UPDATE bookData SET left = \"{Convert.ToInt32(reader["left"]) - 1}\" WHERE bookName = \"{b.bookName}\" AND ISBN = \"{b.ISBN}\" AND writer LIKE \"%{b.writer}%\"";
                            cmd = new SQLiteCommand(sql, conn);
                            cmd.ExecuteNonQuery();
                            MessageBox.Show("ยืมสำเร็จ");
                        }
                        catch (SQLiteException e)
                        {
                            Console.WriteLine(e);
                        }
                    }
                    else
                    {
                        MessageBox.Show("ยืมไม่สำเร็จ");
                    }
                }
            }
            finally
            {
                if (conn.State != System.Data.ConnectionState.Closed)
                    conn.Close();
            }
        }