新手求教sql server sqlparameter

cmd.CommandText = "use master select name From sysdatabases Where name = '"+databasename+"'";

cmd.ExecuteNonQuery();

这个执行可以查到结果,这个databasename是string类型的变量

cmd.Parameters.Add(new SqlParameter("@databasename", "'" + databasename + "'"));

cmd.CommandText = "use master select name From sysdatabases Where name = @databasename";

cmd.ExecuteNonQuery();

我换成这样后就查不到了,错在哪里?

用参数了就不要加 引号了,不然SQL认为你的引号也是数据的一部分。

cmd.Parameters.Add(new SqlParameter("@databasename", "'" + databasename + "'"));

应为

cmd.Parameters.Add(new SqlParameter("@databasename", databasename));