2014-02-25 162 views
0

我有一个程序,它接收传递给它的信息并将信息放入数据库。该程序正在VS2008中为Windows Ce 6.0设备创建,并且无法连接到数据库。我想通过本地网络进行连接,但不完全知道如何操作。这是我调用数据库的函数的代码。尝试连接到SQL Server数据库时出现'SqlException was unhandled'错误

public void callSQL(string partNumber, int total, int numOfPacks, string dunsNumber, string serialNumber, string laneNumber) 
{ 
    //establish connection 
    string conString = "Data Source=10.97.2.67,1433;Initial Catalog=testing.mdf;User ID=**********;Persist Security Info=false"; 

    using (SqlConnection con = new System.Data.SqlClient.SqlConnection(conString)) 
    { 
     con.Open(); 

     try 
     { 
      //open the server 
      //Insert values passed into the method 
      SqlCommand myCommand = new SqlCommand("INSERT INTO test (Part_Number, total, number_of_packs, dunsNumber, serialNumber, truck_number) VALUES (@Part_Number,@total,@number_of_packs,@dunsNumber,@serialNumber,@truck_number)", con); 
      myCommand.Parameters.AddWithValue("@Part_Number", partNumber); 
      myCommand.Parameters.AddWithValue("@total", total); 
      myCommand.Parameters.AddWithValue("@number_of_packs", numOfPacks); 
      myCommand.Parameters.AddWithValue("@dunsNumber", dunsNumber); 
      myCommand.Parameters.AddWithValue("@serialNumber", serialNumber); 
      myCommand.Parameters.AddWithValue("@truck_number", laneNumber); 

      //execute the query 
      myCommand.ExecuteNonQuery(); 
      con.Close(); 
     } 
     catch (SqlException e) 
     { 
      string error = e.ToString(); 
      error = error.ToLower(); 

      if (error.Contains("duplicate") == true) 
      { 
       Console.WriteLine("You have already scanned this barcode."); 
      } 
     } 
    } 
} 

当我运行代码时,代码停在con.Open();我得到它说

SqlException was unhandled

这里的错误是从错误的信息:

System.Data.SqlClient.SqlException {"SqlException"}
[System.Data.SqlClient.SqlException] {"SqlException"}
{Systen.Data.SqlClient.SqlErrorCOllection}
LineNumber 0
Message "SqlException"
Number 17
Procedure "ConnectionOpen(Connect())."
Server "10.97.2.67,1433"
Source ".Net SqlClient Data Provider"
StackTrace
at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, TdsParserState state)
at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, TdsParserState state)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()
at System.Data.SqlClient.TdsParser.Connect(String host, SqlInternalConnection connHandler, Int32 timeout)
at System.Data.SqlClient.SqlInternalConnection.OpenAndLogin()
at System.Data.SqlClient.SqlInternalConnection..ctor(SqlConnection connection, Hashtable connectionOptions)
at System.Data.SqlClient.SqlConnection.Open()
at scan.partObject.callSQL(String partNumber, Int32 total, Int32 numOfPacks, String dunsNumber, String serialNumber, String laneNumber)
at scan.Program.Main(String[] args)

感谢

+0

初始目录可能不应该有.mdf文件。它应该只是数据库的名称。也可以尝试在catch块中设置断点,然后钻取错误集合以获取更多细节。 – BlackICE

+0

@BlackICE即使没有.mdf我也得到完全相同的结果。通过钻取错误集合,你又是什么意思? – AlvinJ

+0

你如何得到IP地址'10.97.2.67,1433' –

回答

0

由于连接字符串,这是一个错误。如果你想通过网络连接到SQL服务器,这里是连接字符串的格式。

Data Source=myServerAddress;Initial Catalog=myDataBase; Integrated Security=SSPI;User ID=myDomain\myUsername;Password=myPassword; 

myServerAddress可以在SQL属性中找到。祝你好运!

0

对我来说,它看起来像你的IP地址的问题。检查您的IP地址并尝试再次连接。

IPv4地址应该有4域中的每个介于0到255详情,请访问here

您的IP地址为“10.97.2.67,1433”,我想删除1433,然后再试一次。 为了在IP地址中使用端口号,请将IP地址更改为“10.97.2.67:1433”。希望这会解决你的问题。

+0

我使用我的IPv4地址,我应该使用别的东西吗? 此外,如果它有帮助,我使用微软SQL服务器2005 – AlvinJ

+0

我编辑了我的答案。希望这会有所帮助。 – fais

+0

',1433'是端口号,我看到有人使用它,所以我将它添加到我的代码中。我删除它,但我仍然得到相同的错误。 – AlvinJ

相关问题