Well, it is most likely because the method BOX.ToString() is implicitly called in your query.
You can test what the code
string s = BOX.ToString();
does.
If you really want to store an array of strings in one column in your database, which you really shouldn't, you need to loop through the array and save it into a string.
Example:
StringBuilder boxString = new StringBuilder();
foreach (string s in BOX)
{
boxString.Append(s);
boxString.Append(",");
}
string result = boxString.ToString().TrimEnd(',');
A much better solution would be to create a new table and store the strings in separate rows.