我有ms访问查询,如下所示:
PARAMETERS prmORIGINCODE Text ( 255 ),
prmORIGIN Text ( 255 ),
prmSERVICECODE Text ( 255 ),
prmDESTINATION Text ( 255 ),
prmDESTCODE Text ( 255 ),
prmSTARTDATE Text ( 255 ),
prmENDDATE Text ( 255 );
SELECT
SUMMARY.DEST_CITY,
SUMMARY.DESTINATION,
Count(SUMMARY.CNOTE_NO) AS CountOfCNOTE_NO
FROM SUMMARY
WHERE (
(
(SUMMARY.ORIGIN_CODE) = [prmORIGINCODE]) AND
((SUMMARY.CNOTE_SERVICES_CODE) = [prmSERVICECODE]) AND
((SUMMARY.ORIGIN) = [prmORIGIN]) AND ((SUMMARY.DEST_CODE) = [prmDESTCODE]) AND
((SUMMARY.TGL_DATA) >= [prmSTARTDATE] And (SUMMARY.TGL_DATA) <= [prmENDDATE])
)
GROUP BY
SUMMARY.DEST_CITY,
SUMMARY.DESTINATION,
SUMMARY.TGL_DATA,
SUMMARY.ORIGIN,
SUMMARY.ORIGIN_CODE,
SUMMARY.DEST_CODE,
SUMMARY.CNOTE_SERVICES_CODE;
我的问题是:
如何为Query参数赋予默认值?我希望查询给我结果,即使我没有给参数赋值(我希望在我没有给参数赋值时显示所有记录)。
我在C#中的一些代码:
OleDbCommand accessCommand = new OleDbCommand();
System.Data.DataTable dt = new System.Data.DataTable();
accessCommand = new OleDbCommand(query, mycon);
accessCommand.Parameters.AddWithValue("@prmORIGINCODE", "BDO");
accessCommand.Parameters.AddWithValue("@prmORIGIN", "BDO10000");
accessCommand.Parameters.AddWithValue("@prmSERVICECODE", "REG15");
accessCommand.Parameters.AddWithValue("@prmORIGINCODE", "BDO");
using (OleDbDataReader myReader = accessCommand.ExecuteReader())
{
DataTable myTable = new DataTable();
myTable.Load(myReader);
return myTable;
}
答案 0 :(得分:0)
您可以更改数据库的设计。在设计模式中选择列并为其设置默认值。如果没有为此参数写入特定值,则会考虑默认值。