Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.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
Vba 工作。@Shiva谢谢。无论如何,我决定给出这个答案,因为我自己在某个时候找不到答案。希望它能很好地为其他人服务:)@Yiping这取决于你如何设置整个环境。通常,您可能只允许某些域用户能够与您的SQL/任何服务器建立连接,不是吗?如果您使用windows_Vba_Connection String - Fatal编程技术网

Vba 工作。@Shiva谢谢。无论如何,我决定给出这个答案,因为我自己在某个时候找不到答案。希望它能很好地为其他人服务:)@Yiping这取决于你如何设置整个环境。通常,您可能只允许某些域用户能够与您的SQL/任何服务器建立连接,不是吗?如果您使用windows

Vba 工作。@Shiva谢谢。无论如何,我决定给出这个答案,因为我自己在某个时候找不到答案。希望它能很好地为其他人服务:)@Yiping这取决于你如何设置整个环境。通常,您可能只允许某些域用户能够与您的SQL/任何服务器建立连接,不是吗?如果您使用windows,vba,connection-string,Vba,Connection String,工作。@Shiva谢谢。无论如何,我决定给出这个答案,因为我自己在某个时候找不到答案。希望它能很好地为其他人服务:)@Yiping这取决于你如何设置整个环境。通常,您可能只允许某些域用户能够与您的SQL/任何服务器建立连接,不是吗?如果您使用windows身份验证/或每用户身份验证,您可能甚至不需要隐藏连接字符串,因为您不需要用户名和密码…抱歉,这仍然只是一种安全错觉。事实上,它使进入数据库变得更容易,因为您可以引用COM对象并使用它来获得自己的原始连接。 using System; using


工作。@Shiva谢谢。无论如何,我决定给出这个答案,因为我自己在某个时候找不到答案。希望它能很好地为其他人服务:)@Yiping这取决于你如何设置整个环境。通常,您可能只允许某些域用户能够与您的SQL/任何服务器建立连接,不是吗?如果您使用windows身份验证/或每用户身份验证,您可能甚至不需要隐藏连接字符串,因为您不需要用户名和密码…抱歉,这仍然只是一种安全错觉。事实上,它使进入数据库变得更容易,因为您可以引用COM对象并使用它来获得自己的原始连接。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.InteropServices;
using System.IO;
using ADODB;

namespace HiddenConnectionString
{
    [InterfaceType(ComInterfaceType.InterfaceIsDual),
    Guid("2FCEF713-CD2E-4ACB-A9CE-E57E7F51E72E")]
    public interface IMyServer
    {
        Connection GetConnection();
        void Shutdown();
    }

    [ClassInterface(ClassInterfaceType.None)]
    [Guid("57BBEC44-C6E6-4E14-989A-B6DB7CF6FBEB")]
    public class MyServer : IMyServer
    {
        private Connection cn;

        private string cnStr = "Provider=SQLOLEDB; Data Source=SERVER\\INSTANCE; Initial Catalog=default_catalog; User ID=your_username; Password=your_password";

        public MyServer()
        {
        }

        public Connection GetConnection()
        {
            cn = new Connection();
            cn.ConnectionString = cnStr;
            cn.Open();
            return cn;
        }

        public void Shutdown()
        {
            cn.Close();
        }
    }
}
C:\Users\administrator\Documents\Visual Studio 2012\Projects\HiddenConnectionString\HiddenConnectionString\bin\Debug
Option Explicit

Sub Main()

    Dim myCn As MyServer
    Set myCn = New MyServer

    Dim rs As ADODB.Recordset
    Set rs = New ADODB.Recordset

    rs.Open "Select * from [TABLE_NAME]", myCn.GetConnection

    Range("A1").CopyFromRecordset rs

    rs.Close
    myCn.Shutdown

    Set rs = Nothing
    Set myCn = Nothing

    Columns.AutoFit

End Sub