Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.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#应用程序连接到远程SQL server?_C#_Sql Server - Fatal编程技术网

为什么我无法通过C#应用程序连接到远程SQL server?

为什么我无法通过C#应用程序连接到远程SQL server?,c#,sql-server,C#,Sql Server,我是C#新手,我使用的是windows窗体 我有两台计算机通过以太网交叉电缆连接在一起(没有使用域),它们可以成功地通信。PC1有windows 7,它承载SQL server(192.168.10.1),PC2有连接到SQL server的C#应用程序,C#应用程序如下: namespace Remote_DB_Connection { public partial class Form1 : Form { SqlConnection MyConnection

我是C#新手,我使用的是windows窗体

我有两台计算机通过以太网交叉电缆连接在一起(没有使用域),它们可以成功地通信。PC1有windows 7,它承载SQL server(192.168.10.1),PC2有连接到SQL server的C#应用程序,C#应用程序如下:

namespace Remote_DB_Connection
{
    public partial class Form1 : Form
    {
        SqlConnection MyConnection = new SqlConnection(@"Data Source=192.168.10.1\COFFEESHOP-PC,1433;Initial Catalog=mydb1;Trusted_Connection=True");

        SqlCommand MyCommand = new SqlCommand();
        DataTable DataTable = new DataTable();
        SqlDataAdapter Sql_Data_Adapter = new SqlDataAdapter();

        public Form1()
        {
            InitializeComponent();

            MyConnection.Open();
            MyCommand.CommandText = "SELECT * FROM Table1";
            MyCommand.Connection = MyConnection;
            Sql_Data_Adapter.SelectCommand = MyCommand;
            Sql_Data_Adapter.Fill(DataTable);

            button1.Text = Convert.ToString(DataTable.Rows[0]["Type"]);
            button2.Text = Convert.ToString(DataTable.Rows[1]["Type"]);
            button3.Text = Convert.ToString(DataTable.Rows[2]["Type"]);

            MyCommand.Parameters.Clear();
            Sql_Data_Adapter.Dispose();

            MyConnection.Close();
        }
    }
}
现在,当我运行应用程序时,它会抛出以下错误:“登录名来自不受信任的域,不能与Windows身份验证一起使用”。在sql server中,我使用windows身份验证登录

我看了一下,他们说我应该在sql server中创建一个用户名和密码,以便远程连接到sql server。 我的问题是:我真的必须在sql server中创建用户名和密码才能修复此错误并连接到sql吗?我的意思是,还有其他方法来解决这个问题吗

请帮帮我,谢谢

我的问题是:我真的必须在中创建用户名和密码吗 sql server是否要修复此错误并连接到sql


是,因为您的计算机不是Windows域的一部分,并且它们之间不可能进行Windows可信身份验证(
trusted\u Connection=True
)。如果计算机不是Windows域的一部分,SQL Server无法知道客户端是谁,除非它在连接字符串中提供用户名和密码。

没有用户名/密码或域,sql server怎么知道你是谁?@qxg那么我必须在sql server上将登录名从windows身份验证更改为sql server身份验证并创建用户名和密码吗?我没有工作组计算机来测试这一点。尝试在两台计算机上创建相同的用户/密码。无论如何,没有域,sql登录更容易。您看过基于证书的身份验证吗?好的,谢谢,我必须在sql server上将登录从windows身份验证更改为sql server身份验证吗?我应该用什么来代替“Trusted_Connection=True”?谢谢是的,您应该切换到SQL server身份验证,而不是
Trusted\u Connection=True
使用
Trusted\u Connection=False;用户名=某个用户;密码=一些秘密
。当然,您需要在SQL server上创建相应的
登录名
,并将其与所需数据库的适当权限相关联。对于基于SQL管理和维护的问题,您最好在更面向编程的站点上提问。