2016-05-21 8 views
0

Microsoft SQL Server 2014 Expressがインストールされており、Visual Studio Express 2015でASP.NETを使用して獣医師からデータを取得する方法を学習していますvetDatabase_Wizardと呼ばれるデータベース。ASP.NET:SQLスクリプトを実行する際に問題が発生する

最初に、私は入力されたIDからprotocolIDを取り出して、clinicalCaseというクラスに情報を格納しています。私はSQLを100%新しくしています。ここで

は私のSQLQuery1.sqlスクリプト(試行)である:ここでは

Select * from tblCases 

CREATE PROCEDURE spGetCaseByID 
    @ID int 
BEGIN 
    SELECT caseID, protocolID 
    FROM tblCases 
    WHERE caseID = @ID 
END 

は私のSQLスクリプトを呼び出して、私のgetCaseByID機能である:

[WebMethod] 
public clinicalCase getCaseByID(int ID) 
{ 
    // Retrieve connection string 
    string cs = ConfigurationManager.ConnectionStrings["vetDatabase_Wizard"].ConnectionString; 

    using (SqlConnection con = new SqlConnection(cs)) 
    { 
     SqlCommand cmd = new SqlCommand("spGetCaseByID", con); 
     cmd.CommandType = CommandType.StoredProcedure; 

     SqlParameter parameter = new SqlParameter("@ID", ID); 
     cmd.Parameters.Add(parameter); 

     clinicalCase cases = new clinicalCase(); 

     con.Open(); 

     SqlDataReader reader = cmd.ExecuteReader(); 

     while (reader.Read()) 
     { 
      cases.ID = Convert.ToInt32(reader["ID"]); 
      cases.protocolID = Convert.ToInt32(reader["protocolID"]); 
     } 

     return cases; 
    } 
} 

私は関数を実行し、それをしようとすると、私は次のことを得ます

のエラー
SqlDataReader reader = cmd.ExecuteReader(); 

Could not find the stored procedure "spGetCaseByID".

私はそれが私のSQL構文または私は1つを持っていなかったので、私は私のweb.configファイル内の接続文字列を追加したという事実だ疑い:

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <connectionStrings> 
    <add name="vetDatabase_Wizard" 
     connectionString="Data Source=JOHNATHANBO431E\SQLEXPRESS2014;Initial Catalog=vetDatabase_Wizard;Integrated Security=True" 
     providerName="System.Data.SqlClient" /> 

    </connectionStrings> 

    <system.web> 
    <compilation debug="true" targetFramework="4.6.1"/> 
    <httpRuntime targetFramework="4.6.1"/> 
    <httpModules> 
     <add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web"/> 
    </httpModules> 
    </system.web> 
    <system.codedom> 
    <compilers> 
     <compiler language="c#;cs;csharp" extension=".cs" 
     type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" 
     warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701"/> 
     <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" 
     type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" 
     warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+"/> 
    </compilers> 
    </system.codedom> 
    <system.webServer> 
    <validation validateIntegratedModeConfiguration="false"/> 
    <modules> 
     <remove name="ApplicationInsightsWebTracking"/> 
     <add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web" 
     preCondition="managedHandler"/> 
    </modules> 

    </system.webServer> 
</configuration> 

私はのプロパティパネルから名前とたconnectionStringを得ましたデータベース。

コミュニティのフィードバックに感謝します。なぜなら、私は明らかなものを見逃しているはずですから!私はあなたの時間のために非常に感謝したいと思います! :)

EDIT:Visual Studioで使用する前に、SQL Server Management StudioでSQLスクリプトを最初に実行する必要があることを認識しました。

SQL80001: Incorrect syntax: 'CREATE PROCEDURE' must be the only statement in the batch. vetApp

そこで、私のSQLスクリプトが間違っていると助けをデバッグ感謝:

はしかし、私は次のエラーを取得します。

答えて

0

SQLで複数のコマンドを実行しようとしています。ストアドプロシージャを作成するためには、コードの最初の行でなければなりませんまたは複数のSQLコマンドの間に

Select * from tblCases 

goを配置GO

CREATE PROCEDURE spGetCaseByID 
    @ID int 
**AS** 
BEGIN 
    SELECT caseID, protocolID 
    FROM tblCases 
    WHERE caseID = @ID 
END 

これは

+0

ありがとうございました!出来た!とても簡単! :Pだから "Go"は2つのコマンドに分けられますよね? – Johnathan

+0

はいそれはcosider 2つのコマンドを修正します –

4

コードで、spGetCaseByIDというSQL Serverストアドプロシージャを実行しようとしています。 このストアドプロシージャは、データベースに存在しません。

+2

こんにちはイアンを助けます!ご意見ありがとうございます!私はちょうど見つけた:私は最初にそれを格納するために実行する必要があります。ファイルを保存することはできません。 – Johnathan

関連する問題