私はASP.NETを使用してAPIを開発中です。ある時点で、別のメソッドを呼び出すメソッドが必要です。それらの使用ストアドプロシージャの両方:HTTP 500:エラーの原因となるSQL接続文字列
public async Task<IHttpActionResult> GetTeamById(string TeamId)
{
DataTable Result = new DataTable();
SqlCommand Command = new SqlCommand("GetTeam", ConnectionString);
Command.CommandType = CommandType.StoredProcedure;
Command.Parameters.AddWithValue("@TeamId", TeamId);
using (ConnectionString) /defined above
{
try
{
ConnectionString.Open();
using (SqlDataReader DataReader = Command.ExecuteReader())
{
Result.Load(DataReader);
return Ok(Result);
}
}
catch
{
return InternalServerError();
}
}
}
public async Task<IHttpActionResult> UpdateTeam(string TeamId)
{
SqlCommand Command = new SqlCommand("UpdateTeam", ConnectionString);
Command.CommandType = CommandType.StoredProcedure;
Command.Parameters.AddWithValue("@Id", TeamId);
using (ConnectionString)
{
try
{
ConnectionString.Open();
int returnvalue = (int) Command.ExecuteScalar();
if (returnvalue == 1)
return BadRequest();
else
await GetTeamById(TeamId);
}
catch
{
return InternalServerError();
}
}
}
私が直面する問題はUpdateTeam
メソッドが呼び出されたときに、このコードは、500内部サーバーエラーをスローしていることです。私は問題がGetTeamById
機能のConnectionString.Open()
行で発生することを理解しました。
接続がまだ開いている可能性があると私は考えましたか?しかし、それがなぜusing()
を使うのではないのですか?この問題を回避するにはどうすればよいですか?
ご協力いただきありがとうございます。私は、プロシージャに接続するとき
は、なぜあなたは(VAR dbAbel_Reportingは=新しいAbel_ReportingPortalEntitiesを())を使用して、これらの – Bharat
のようなあなたのconnestionstringを使用していけない { – Bharat
すなわちVARにそれを使用し、それの新しいインスタンスを作成.. – Bharat