为什么我无法通过C#应用程序连接到远程SQL server?
我是C#新手,我使用的是windows窗体 我有两台计算机通过以太网交叉电缆连接在一起(没有使用域),它们可以成功地通信。PC1有windows 7,它承载SQL server(192.168.10.1),PC2有连接到SQL server的C#应用程序,C#应用程序如下:为什么我无法通过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
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管理和维护的问题,您最好在更面向编程的站点上提问。