Webページフォームに入力されてサーバーに渡された特定の値をテストする必要があるC#.NETコードを実行しています。次に、サーバーはクエリ文字列でこれらの値を使用して値を返します。SQL例外をトレースするために、これらのクエリ命令をtry-catchブロック内に入れます。
問題は次のとおりです。アプリケーションが起動し、接続文字列が設定され、クエリが実行されると、catchブロックのSQL例外からスタックトレースを取得せず、代わりにメソッド内で空白/空の値を取得します。クエリを実行しました。このメソッドはブール変数を返し、クエリから読み取られた値があるかどうかを示します。値があればtrueを返しますが、常にfalseを返します。これは、MSSQL2008に貼り付けて作成したクエリ文字列を確認したためです。クエリコンソールとそれを実行します。貼り付けられたSQL命令テストを実行した結果は、クエリからnull以外のデータを生成します。よろしくお願いします。
IIS 6.0でVS2003を実行していて、MS SQL 2008EnterpriseStudioを使用しています
これがweb.configとC#コードのコードセグメントです。ご協力いただきありがとうございます。:
<system.web>
<!-- DYNAMIC DEBUG COMPILATION
Set compilation debug="true" to enable ASPX debugging. Otherwise, setting this value to
false will improve runtime performance of this application.
Set compilation debug="true" to insert debugging symbols (.pdb information)
into the compiled page. Because this creates a larger file that executes
more slowly, you should set this value to true only when debugging and to
false at all other times. For more information, refer to the documentation about
debugging ASP.NET files.
-->
<compilation defaultLanguage="c#" debug="true" />
====================
//This method takes one string and returns either country name or Canadian state as a string, according to query.
private string candStateCountryCheck(string strQuery)
{
string strStateCountry = "";
SqlConnection con = null;
SqlCommand cmd = null;
SqlDataReader sdr = null;
try
{
string strConnection = ConfigurationSettings.AppSettings["OLEDBConnectionString"];
con = new SqlConnection(strConnection);
con.Open();
cmd = new SqlCommand(strQuery, con);
sdr = cmd.ExecuteReader();
if(sdr.Read())
{
strStateCountry = sdr.GetString(0);
}
}
catch (Exception exc)
{
ErrorLabel.Text = "ERROR:" + exc.Message;
}
finally
{
if (sdr != null)
sdr.Close();
if (cmd != null)
cmd.Dispose();
if (con != null)
con.Close();
}
return strStateCountry;
}