2017-06-02 60 views
0

我想加载在SQL文件中找到的main.usp_setup过程。这是一个打开XML文件的过程,我将该文件名作为参数传递给方法。由于某些原因,它不能正确加载。有什么建议么?提前致谢。从SQL运行在c#中的存储过程

public static bool loadXml(string filename) 
    { 
     bool load = false; 
     SqlConnection conn = new SqlConnection(constConn); 
     SqlCommand command = new SqlCommand("main.usp_setup", conn); 

     try 
     { 
      conn.Open(); 

      command.CommandType = CommandType.StoredProcedure; 
      command.Parameters.Add("@file", SqlDbType.NVarChar, 1000).Value = filename; 
      int rows = command.ExecuteNonQuery(); 
      conn.Close(); 
      load = true; 

     } 

     catch (Exception e) 
     { 
      Console.WriteLine("An Exception Occured: " + e.ToString()); 
     } 
     return load; 
    } 
+0

什么确切的问题? –

+0

@RomanoZumbé在c#程序没有从sql中找到我的过程,因此出现大量错误 –

+0

连接字符串的InitialCatalog是否设置为正确的数据库? –

回答

0

试试这个:

using (var conn = new SqlConnection(connectionString)) 
using (var command = new SqlCommand("main.usp_setup", conn) { 
         CommandType = CommandType.StoredProcedure }) { 
    conn.Open(); 
    command.CommandType = CommandType.StoredProcedure; 
     command.Parameters.Add("@file", SqlDbType.NVarChar, 1000).Value = filename; 
     int rows = command.ExecuteNonQuery(); 
     conn.Close(); 
     load = true; 
} 

取而代之的是:

SqlConnection conn = new SqlConnection(constConn); 
SqlCommand command = new SqlCommand("main.usp_setup", conn); 
    try{ 
     conn.Open(); 
+0

实际区别是什么? –