String
refers to a string object which comes with various functions for manipulating the contained string.
string
refers to a primitive type
In C# they both compile to String but in other languages they do not so you should use String if you want to deal with String objects and string if you want to deal with literals.