二重引用符は機能しないため、SQLステートメントを直接実行するときに実際に変数比較を行うには、「値」と入力する必要があります。
問題は、ASP.NETコードからSQLステートメントを実行すると、読み取り値が得られないように見えることです...エラーも発生しません:S...。
SQLステートメントを単独で実行しようとしましたが、機能します。
public static string testExi(string localIncidentNum)
{
try
{
string query = "SELECT TOP 1 UniqueColID From DBNAME WHERE LocalIncidentNum = @localIncidentNum ORDER BY [version] DESC";
DataTable dt = new DataTable();
SqlConnection connection = new SqlConnection(connectionStr);
SqlCommand command = new SqlCommand(query, connection);
command.Parameters.AddWithValue("@localIncidentNum", localIncidentNum);
connection.Open();
SqlDataAdapter adp = new SqlDataAdapter(command);
adp.Fill(dt);
connection.Close();
command.Dispose();
connection.Dispose();
if (dt.Rows.Count != 0)
{
string UniqueColID = dt.Rows[0]["UniqueColID"].ToString();
return UniqueColID;
}
else
{
return null;
}
string some = dt.Rows[0]["UniqueColID"].ToString();
return some;
}
catch (Exception err)
{
Global.tmpmsg = " Updating follow up was not successful. " + err.ToString();
return null;
}
}
SELECTステートメントでインシデント値をハードコーディングすると機能しますが、.addwithvalueでインシデント値をハードコードすると機能しません。
command.Parameters.AddWithValue("@localIncidentNum", "12-023696");