在Visual Studio可执行文件中执行SQL存储过程

问题描述:

我在SQL数据库的数据库中有一个存储过程。我正在使用SQL Server 2012.我想在运行此存储过程的C#中的Visual Studio 2013中构建一个可执行文件。我做了一个基本的尝试,但是我碰到一个错误,只是想让我的SqlConnection。以下是我的代码。我有一个Try/CatchCatch发送我的电子邮件与遇到的错误。它告诉我,我收到第22行的第一个错误,这是我的using声明。在Visual Studio可执行文件中执行SQL存储过程

try 
     { 
      //create a connection to the database 
      string ConnString = ConfigurationManager.ConnectionStrings["AirMonRead"].ConnectionString; 

      using (SqlConnection con = new SqlConnection(ConnString)) 
      { 
       con.Open(); 
       SqlCommand cmd = new SqlCommand("AQB_RMS.p_Temp_AirVisionSiteLog", con); 
       cmd.CommandType = CommandType.StoredProcedure; 

       con.Close(); 
      } 

     } 

编辑:

下面是我收到的错误消息 -

encountered the error: System.ArgumentException: Keyword not supported: 'metadata'. at 
System.Data.Common.DbConnectionOptions.ParseInternal(Hashtable 
parsetable, String connectionString, Boolean buildChain, Hashtable 
synonyms, Boolean firstKey) at 
System.Data.Common.DbConnectionOptions..ctor(String connectionString, 
Hashtable synonyms, Boolean useOdbcRules) at 
System.Data.SqlClient.SqlConnectionString..ctor(String connectionString) at 
System.Data.SqlClient.SqlConnectionFactory.CreateConnectionOptions(String connectionString, 
DbConnectionOptions previous) at 
System.Data.ProviderBase.DbConnectionFactory.GetConnectionPoolGroup(DbConnectionPoolKey key, 
DbConnectionPoolGroupOptions poolOptions, DbConnectionOptions& userConnectionOptions) at 
System.Data.SqlClient.SqlConnection.ConnectionString_Set(DbConnectionPoolKey key) at 
System.Data.SqlClient.SqlConnection.set_ConnectionString(String value) at 
System.Data.SqlClient.SqlConnection..ctor(String connectionString, 
SqlCredential credential) at 
System.Data.SqlClient.SqlConnection..ctor(String connectionString) at 
LogWriter.Program.Main(String[] args) in 
c:\inetpub\wwwroot\DEQ\LogWriter\LogWriter\Program.cs:line 22 
+0

你能显示错误的截图吗? –

+0

错误的详细信息,也,我建议你避免使用这个旧的SqlCommand,并尝试使用**实体框架**,Code First或DataBase First(这允许您映射SP) –

+7

@VictorHugoTerceros SqlCommand没有错。实体框架增加了很多复杂性,对于运行SP它增加了零利益。 – stuartd

除非你要使用2个数据库,有你需要在这里检查3件事情。

  1. 确保属性

目录= AQB_MON

参考了正确的数据库。您的问题来看,大概AQB_MON或AQB_RMS

  1. 除非你引用不是DBO以外的架构,它看起来像你的存储过程与prefexed“AQB_RMS。”尝试移除此

    电流

    的SqlCommand CMD =新的SqlCommand( “AQB_RMS p_Temp_AirVisionSiteLog”,CON);

    更改为

    的SqlCommand CMD =新的SqlCommand( “p_Temp_AirVisionSiteLog”,CON);

  2. 要检查连接是否正在打开并执行存储过程,可以使用MS SQL Profiler

开始=“2”>