2010-12-06 46 views
4

我在获取与.sdf(sql精简版)数据库的连接时遇到了巨大的麻烦。我可以初始连接以提取行以验证用户名/密码,但是当我尝试通过SqlCeConnection/SqlCeCommand命令或尝试添加项目SqlClient/SqlCommand连接尝试向数据库添加项目时,我没有运气。我得到:通过SqlConnection/SqlCeConnection连接到.sdf数据库的问题

A network-related or instance-specific error occurred while establishing 
a connection to SQL Server. The server was not found or was not accessible. 
Verify that the instance name is correct and that SQL Server is configured to 
allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error 
Locating Server/Instance Specified) 

使用时:

private void button1_Click_1(object sender, EventArgs e) 
{ 
    System.Data.SqlClient.SqlConnection sqlConnection1 = 
    new System.Data.SqlClient.SqlConnection("Data Source=C:\\Users\\Tim\\Documents\\Visual Studio 2010\\Projects\\Dispatch POS\\Dispatch POS\\GhsDB.sdf"); 

    System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand(); 
    cmd.CommandType = System.Data.CommandType.Text; 
    cmd.CommandText = "INSERT [Employee Table] (SSN, FirstName) VALUES ('555-23-4322', 'Tim')"; 
    cmd.Connection = sqlConnection1; 

    sqlConnection1.Open(); 
    cmd.ExecuteNonQuery(); 
    sqlConnection1.Close(); 
} 

或当我尝试:

System.Data.SqlClient.SqlConnection sqlConnection1 = 
      new System.Data.SqlClient.SqlConnection("Data Source=C:\\Users\\Tim\\Documents\\Visual Studio 2010\\Projects\\Dispatch POS\\Dispatch POS\\GhsDB.sdf"); 

      System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand(); 
      cmd.CommandType = System.Data.CommandType.Text; 
      cmd.CommandText = "INSERT [Employee Table] (SSN, FirstName) VALUES ('555-23-4322', 'Tim')"; 
      cmd.Connection = sqlConnection1; 

      sqlConnection1.Open(); 
      cmd.ExecuteNonQuery(); 
      sqlConnection1.Close(); 

什么也没有发生,它似乎工作,直到我检查了.sdf文件,看看有没有什么已被添加。我没有安装SQL Server CE,尽管我安装了2008 R2(我正在处理别人的项目)。

现在我不担心安全漏洞,我只是想成功添加一条记录。任何帮助都会非常感谢,因为我花了大约三到四个小时来完成一些我需要大约20分钟的工作。

回答

10

也许你现在已经找到了解决办法,但如果你使用一个SDF文件,大会应该添加引用System.Data.SqlServerCe,然后是这样的:

SqlCeConnection sqlConnection1= new SqlCeConnection(); 
sqlConnection1.ConnectionString = "Data Source = C:\\Users\\Tim\\Documents\\Visual Studio 2010\\Projects\\Dispatch POS\\Dispatch POS\\GhsDB.sdf"; 

System.Data.SqlServerCe.SqlCeCommand cmd = System.Data.SqlServerCe.SqlCeCommand; 
cmd.CommandType = System.Data.CommandType.Text; 
cmd.CommandText = "INSERT [Employee Table] (SSN, FirstName) VALUES ('555-23-4322', 'Tim')"; 
cmd.Connection = sqlConnection1; 

sqlConnection1.Open(); 
cmd.ExecuteNonQuery(); 
sqlConnection1.Close(); 
+0

谢谢你指点我在正确的方向 - 谢谢! – 2011-09-11 19:55:46

0

你最使用sqlceconnection和sqlcecommand类。像这样:

 SqlCeConnection conn = new SqlCeConnection(connectionString);    
     SqlCeCommand cmd = conn.CreateCommand(); 
     conn.Open();