2012-11-19 107 views
2

其实我开发一个Windows窗体使用Visual C#速成2010年的数据从SQL Server 2008 Express的DBC#2010速成+ SQL Server 2008 Express的 - 连接 “登录失败”

应用程序,它会使用(读/写)我创建了我的数据库与SQL Server Management Studio中(2008年快递), 我明白实例被命名为ATLELAG786576\SQLEXPRESS 我的数据库被称为“TEST”

看着我的数据库“TEST”属性在SQL Server Management Studio中(2008年快递): 在文件下,我是(ATLE\bneveux)DB的拥有者

安全,登录Mylogin(ATLE \ bneveux)

  • 我的默认数据库是 'TEST' 下寻找
  • 服务器角色是 '公' + '系统管理员'
  • 用户映射DB 'TEST'用户 'DBO' 默认模式 'DBO'

在我的C#应用​​程序

的app.config:

<?xml version="1.0" encoding="utf-8" ?> <configuration> 
    <configSections> 
    </configSections> 
    <connectionStrings> 
     <add name="connectionStringTestDb" 
      connectionString="Data Source=ATLELAG786576\SQLEXPRESS;Initial Catalog=D:\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA\TEST.mdf;Integrated Security=True;Connect Timeout=30;User Instance=False" 
      providerName="System.Data.SqlClient" /> 
    </connectionStrings> </configuration> 

dbConnection.cs:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Data; 
using System.Data.SqlClient; 
using System.Configuration; 

namespace SQLServerConnectionDemo 
{ 
    class dbConnection 
    { 
     public static SqlConnection newCon; 
     public static string connectionStringTestDb = ConfigurationManager.ConnectionStrings["connectionStringTestDb"].ConnectionString; 

     public static SqlConnection GetConnection() 
     { 
      newCon = new SqlConnection(connectionStringTestDb); 
      return newCon; 
     } 
    } 
} 

dbAccess.cs:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Data; 
using System.Data.SqlClient; 

namespace SQLServerConnectionDemo 
{ 
    class dbAccess 
    { 
     SqlConnection conn; 
     public dbAccess() 
     { 
      conn = dbConnection.GetConnection(); 
     } 

     //Method insert new in tblEmployees 
     public void addEmployee(string Id, string Name, string Email) 
     { 
      if (conn.State.ToString() == "Closed") 
      { 
       conn.Open(); 
      } 
      SqlCommand newCmd = conn.CreateCommand(); 
      newCmd.Connection = conn; 
      newCmd.CommandType = CommandType.Text; 
      newCmd.CommandText = "INSERT INTO tblEmployees VALUES ('"+ Id +"','"+ Name +"','"+ Email +"')"; 
      newCmd.ExecuteNonQuery(); 
     } 

    } 
} 

的形式formEmployeeAdd.cs:

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 

namespace SQLServerConnectionDemo 
{ 
    public partial class formEmployeeAdd : Form 
    { 

     dbAccess access = new dbAccess(); 

     public formEmployeeAdd() 
     { 
      InitializeComponent(); 
     } 

     private void btnInsert_Click(object sender, EventArgs e) 
     { 
      access.addEmployee(txtId.Text, txtName.Text, txtEmail.Text); 
      MessageBox.Show("Data successfully added"); 
     } 
    } 
} 

而且这里的错误信息尝试运行这个过程时,我总是得到:

System.Data.SqlClient.SqlException(0x80131904):无法打开数据库“d:\ Microsoft SQL Server的\ MSSQL10.SQLEXPRESS \ MSSQL \ DATA \ TEST.mdf“。登录失败。 用户'ATLE \ bneveux'登录失败。

注意,我从来没有真正能够从VS加我的数据源在Visual C#2010 Express,以使我可以管理数据库,我总是得到以下错误消息:

无法打开物理文件“D:\ Microsoft SQL Server \ MSSQL10.SQLEXPRESS \ MSSQL \ DATA \ TEST.mdf”。操作系统错误32:“32(Le processus ne peut pasaccéderau fichier car ce fichier estutilisépar par un autre processus。)”。 尝试附加文件D:\ Microsoft SQL Server \ MSSQL10.SQLEXPRESS \ MSSQL \ DATA \ TEST.mdf的自动命名数据库失败。具有相同名称的数据库存在,或指定的文件无法打开,或位于UNC共享上。

回答

1

尝试用简单的

Initial Catalog=TEST 
+0

jeroenh嗨更换

Initial Catalog=D:\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA\TEST.mdf 

,只是想你的命题,它的工作和解决我的问题!感谢您的快速答复! (我该如何标记此答案成功?) – Brice

+0

很好用。这个问题应该留下一个“接受”的标记。您也可以使用向上箭头向上投票。 – jeroenh

+0

jeroenh, 我可以滥用并询问您如何解决使用Visual C#2010 Express浏览/管理数据库的可能性; 当我去 数据源>新建>数据库>数据集>新连接 我选择“数据源”Microsoft SQL Server文件...(抱歉如果翻译不正确我用法语版) 然后浏览到我的TEST.mdf文件 当我点击“测试连接”时,我现在收到以下错误消息“无法打开用户默认数据库,登录失败,用户'ATLE \ bneveux'登录失败。” 谢谢! Brice – Brice

相关问题