It is a CS0309 problem that arises,
and I am clearly not skilled enough
to solve this problem myself.
GameObject me = (GameObject)Instantiate(Resources.Load("Card"));
me.GetComponent<Card>().DataName = "Info";
I need to assign a string to the variable DataName in the script Card,
on the object I just instantiated (which comes with Card script attached).
I really could use help to solve this.
I made this answer to my own post, just because it seems that there is a cap to how many comments it shows of those added to a question/answer.
Yep, as I thought, it is a namespace clash. Your DrawPile class from DrawPile.cs has a nested class called Card that is the same as the CardData class inside Card from Card.cs. When the compiler is told to look for Card, it GetComponent(), it does not find your main Card class, it finds DrawPile.Card, which is not a Component.
I would create a single class called CardData, move it into its own file (it does not need to be a MonoBehaviour or anything, just a plain data class) and use instances of that in both DrawPile and Card to store and pass around card data.
Let us know how you get on and if you are not sure about anything.