连接字符串,我需要使用密码,但我使用的是 Windows 连接

  • 本文关键字:连接 Windows 密码 字符串 c# sql
  • 更新时间 :
  • 英文 :


我已经用visualstudio创建了一个数据库,我使用windows身份验证来连接它。

我试过很多东西,但它不起作用

namespace Stock
{
public partial class Fm_principal : Form
{
public SqlConnection connexion_BDD()
{
//Connection base de donnée
string connectionString = "Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=Database;Trusted_Connection=false";
SqlConnection connection = new SqlConnection(connectionString);
try
{
connection.Open();
return connection;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
return connection;
}
}
public Fm_principal()
{
InitializeComponent();
}
private void cb_test_Click(object sender, EventArgs e)
{
connexion_BDD();
string request = "SELECT ref_pdt FROM produits";
SqlCommand command = new SqlCommand(request, connexion_BDD());
SqlDataReader dataReader = command.ExecuteReader();
while (dataReader.Read())
{
cb_test.Items.Add(dataReader["ref_pdt"]);
}
}
}
}

我在dataReader上有一个错误,因为连接当前已关闭

我真的只是把它敲了出来,但你会想要这样的东西:(提示:看看像Dapper这样的东西,因为你可能更喜欢它)

public partial class Fm_principal : Form
{
public SqlConnection connexion_BDD()
{
//Connection base de donnée
string connectionString = "Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=Database;Trusted_Connection=true";
SqlConnection connection = new SqlConnection(connectionString);
try
{
connection.Open();
return connection;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
return connection;
}
}
public Fm_principal()
{
InitializeComponent();
}
private void cb_test_Click(object sender, EventArgs e)
{
using (var connection = connection_BDD())
{
string request = "SELECT ref_pdt FROM produits";
using (var command = new SqlCommand(request, connection))
{
using (var dataReader = command.ExecuteReader())
{
while (dataReader.Read())
{
cb_test.Items.Add(dataReader["ref_pdt"]);
}
}
}
}
}
}

编辑:如果我误解了你的问题,认为你真的想使用用户名和密码进行连接,那么请将连接字符串设置为:

string connectionString = "Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=Database;User Id=YOURUSERNAME;Password=YOURPASSWORD;Trusted_Connection=false";

编辑:设置SQL凭据(我不建议这样做,因为我认为集成安全性更好,因为它可以避免用户名/密码凭据泄漏到源代码管理中):

  1. 确保已启用SQL Server身份验证(SSMS->Server(右键单击)->属性->安全(确保第二个收音机按钮被选中"SQL Server和Windows身份验证模式">
  2. 您将需要一个服务器登录名和映射的DB用户。服务器下(在SSMS中),展开"安全"->"登录"。添加登录名(右键单击登录选择"添加登录名")
  3. 输入您想要的登录名(这是连接字符串中的用户Id),然后选择SQL Server验证,然后选择一个(希望是好的)密码。如果这是本地框,而您不在乎关闭密码策略复选框
  4. 在"数据库角色"下的对话框中,保留public或如果您希望它管理数据库,请使其更有特权。如果这是本地devbox使帐户成为sysadmin可以
  5. 在"用户映射"下的对话框中,选择您的数据库并选择适当的角色。如果用户只需要访问(读/写)数据,请选择db_datareader/db_datawriter。通常在开发框中只是选择db_owner是最好的(如果您正在管理模式等)

最新更新