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));