私のコードから、次を使用して SP を呼び出します。
using (var cmd = new SqlCommand("sp_getnotes"))
{
cmd.Parameters.Add("@ndate", SqlDbType.SmallDateTime).Value
= Convert.ToDateTime(txtChosenDate.Text);
cmd.CommandType = commandType;
cmd.Connection = conn;
var dSet = new DataSet();
using (var adapter = new SqlDataAdapter { SelectCommand = cmd })
{
adapter.Fill(dSet, "ntable");
}
}
ストアド プロシージャ自体は、単純なクエリを実行します。
SELECT * FROM tblNotes WHERE DateAdded = @ndate
問題は、レコードが返されないことです! DateAdded
はsmalldatetime
コラムです。
クエリを次のように変更すると、機能します。
SELECT * FROM tblNotes WHERE CONVERT(DATETIME, FLOOR(CONVERT(FLOAT, DateAdded))) = @ndate
なぜこうなった?この変更はアプリケーション全体に影響を与えるため、すべてのクエリを変更する前に根本的な原因を突き止めたいと考えています...私たちが行った唯一の変更は、パラメーター化されたクエリを使用し、SQL Server 2005 から 2008 にアップグレードすることです。
ティア。