Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 是否在调用存储过程之前设置当前数据库?_C#_Mysql_Sql Server - Fatal编程技术网

C# 是否在调用存储过程之前设置当前数据库?

C# 是否在调用存储过程之前设置当前数据库?,c#,mysql,sql-server,C#,Mysql,Sql Server,请考虑C#中的这段代码: 当我执行此命令时,sqlserver(或MySQL服务器)是否知道我要在哪个数据库中运行此存储过程 考虑到性能和安全性,这里的最佳约定是什么?我应该 是否显式指定数据库名称 每次创建连接后,是否使用命令设置默认数据库 假设当前数据库已由连接设置?(例如,数据库=mydb) 其他的 此外,在SQL Server中,我认为最好明确指定数据库所有者: command.CommandText = "dbo.usp_my_procedure"; 或 希望这有帮助 或 希望这对您

请考虑C#中的这段代码:

当我执行此命令时,
sqlserver
(或
MySQL
服务器)是否知道我要在哪个数据库中运行此存储过程

考虑到性能和安全性,这里的最佳约定是什么?我应该

  • 是否显式指定数据库名称
  • 每次创建连接后,是否使用命令设置默认数据库
  • 假设当前数据库已由连接设置?(例如,
    数据库=mydb
  • 其他的
  • 此外,在SQL Server中,我认为最好明确指定数据库所有者:

    command.CommandText = "dbo.usp_my_procedure";
    

    希望这有帮助


    希望这对您有所帮助

    如果您要对一个数据库使用连接,并且您确定它不会被更改,那么您可以使用use命令或仅使用连接字符串一次性设置当前数据库。在这种情况下,您可以使用ommit对象全名-write
    dbo.table1
    ,而不是
    db_name.dbo.table1


    如果要修改/引用某些数据库中的对象,则可以选择:在语句前面执行USE命令,或使用全名-
    db_name.dbo.table1
    。您可以自己回答这个问题-哪一个更适合您。

    如果您要对一个数据库使用连接,并且您确定它不会被更改,那么您可以使用use命令或仅使用连接字符串设置当前数据库一次。在这种情况下,您可以使用ommit对象全名-write
    dbo.table1
    ,而不是
    db_name.dbo.table1


    如果要修改/引用某些数据库中的对象,则可以选择:在语句前面执行USE命令,或使用全名-
    db_name.dbo.table1
    。你可以自己回答这个问题-哪一个更适合你。

    虽然
    ChangeDatabase
    肯定有用,但这并不能回答我的问题。虽然
    ChangeDatabase
    肯定有用,但这并不能回答我的问题。
    command.CommandText = "dbo.usp_my_procedure";
    
    objSqlConnection.ChangeDatabase("Database");
    
    command.CommandText = "database.dbo.usp_my_procedure";