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=\"Web\" /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スクリプトが間違っていると助けをデバッグ感謝:
はしかし、私は次のエラーを取得します。
ありがとうございました!出来た!とても簡単! :Pだから "Go"は2つのコマンドに分けられますよね? – Johnathan
はいそれはcosider 2つのコマンドを修正します –