Don't use string.Format() in this case, when what you already have is a string.
Your query is missing an enclosing single-quote over 2 places. Use the following code:
string query = "UPDATE [" + dbName + "].[dbo].[MasterDatas] "
+ "SET SupervisorGPID = '" // here ' is missing
+ gpid + "'"
+ " WHERE UserName = 'strenev'"; // here surrounding '' is missing
By the way, you need to study more about SQL-Injection, etc. to know that this is not a good/safe practice.
EDIT based on the comments (thanks for the suggestion):
Code without SQL-Injection (reference: What are good ways to prevent SQL injection?):
string query = "UPDATE [dbname].[dbo].[MasterDatas] "
//// assuming dbName is not a variable which a user-decides as it generally can't be, and rather a fixed string.
+ "SET SupervisorGPID = @gpid"+
+ " WHERE UserName = 'strenev'"; // here surrounding '' is missing
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlCommand command = new SqlCommand(query, connection);
command.Parameters.Add("@dbName", SqlDbType.NVarchar);
command.Parameters["@dbName"].Value = dbName;
command.Parameters.Add("@gpID", SqlDbType.Int);
command.Parameters["@gpID"].Value = gpid;
try
{
connection.Open();
Int32 rowsAffected = command.ExecuteNonQuery();
Console.WriteLine("RowsAffected: {0}", rowsAffected);
}
catch (Exception ex)
{
//catch and handle OR throw;
}
}