通过.net winform应用程序连接到sql server

sql*_*ild 3 .net c# sql sql-server sql-server-2005

我正在使用form1创建一个简单的c#.net winform应用程序,它将连接到sql server.

我希望在建立与sql server的连接之前,应用程序要求用户输入登录名和密码进行连接.

为此我应该怎么做:

将登录名和密码放在两个文本框中并将它们传递给连接字符串,或者我应该将它们传递给app.config文件然后使用form1.cs中的app.config文件中的字符串?

安全问题会好吗?如果没有,那么实现这项任务的其他方法是什么?

mar*_*c_s 5

我会这样做:

  • 使用一个SqlConnectionStringBuilder组件
  • 从您的定义服务器名称,数据库名称等内容 app.config
  • 该组件还具有用户名和密码的两个属性 - 从提示用户输入此信息的对话框中填充这些属性
  • 然后,SqlConnectionStringBuilder为您提供用于连接到SQL Server的正确连接字符串

更新:

我的建议是存储基本的连接字符串,如下所示:

<configuration>
  <connectionStrings>
     <add name="MyConnStr" 
          connectionString="server=A9;database=MyDB;" />
  </connectionStrings>
</configuration>
Run Code Online (Sandbox Code Playgroud)

然后加载这个"骨架"连接字符串(这是不完整的 - 单独不起作用!)到你的SqlConnectionStringBuilder:

string myConnStr = ConfigurationManager.ConnectionStrings["MyConnStr"].ConnectionString;

SqlConnectionStringBuilder sqlcsb = new SqlConnectionStringBuilder(myConnStr);
Run Code Online (Sandbox Code Playgroud)

然后在对话框中从用户处获取用户名和密码,并将其添加到连接字符串构建器:

sqlcsb.UserID = tbxUserName.Text.Trim();
sqlcsb.Password = tbxPassword.Text.Trim();
Run Code Online (Sandbox Code Playgroud)

然后从以下位置获取生成的完整连接字符串SqlConnectionStringBuilder:

string completeConnStr = sqlcsb.ConnectionString;

using(SqlConnection _con = new SqlConnection(completeConnStr))
{
   // do whatever you need to do here....
}
Run Code Online (Sandbox Code Playgroud)