C# のコード:
public List<Per> RunSpForAotuComplete(string storedProcName, string text)
{
OleDbDataReader rdr =null;
List<Per> dictionary = new List<Per>();
OleDbConnection connection = new OleDbConnection(ConString);
connection.Open();
OleDbCommand cmd = new OleDbCommand(storedProcName, connection)
{
CommandType = CommandType.StoredProcedure
};
OleDbParameter parameter = new OleDbParameter("@text", text);
cmd.Parameters.Add(parameter);
rdr = cmd.ExecuteReader();
if (rdr.HasRows)
{
while (rdr.Read())
{
dictionary.Add(new Per
{
name = rdr["semel"].ToString(),
value = rdr["shem"].ToString(),
});
}
}
}
なぜだか分かりませんif(rdr.HasRows)=false
。
この手順は次のように書かれています。
SELECT shem, semel
FROM TYISHUV
WHERE shem like @text +'*';
私もやろうとしました:
OleDbParameter パラメータ = 新しい OleDbParameter("テキスト", テキスト);
それ以外の:
OleDbParameter parameter = new OleDbParameter("@text", text);