.net 什么';这个密码怎么了?Can';t按十进制和日期搜索
我正在使用jQuery表,它使用ASP.NETMVC4.5连接到我网页中数据库中的一个表 我已经编写了我的控制器,我正在尝试使用搜索框搜索数据,到目前为止,我可以搜索诸如姓名、ID、电话之类的内容,因为它们在我的类中都定义为字符串,但当涉及到按日期或工资(小数)搜索时,它将不起作用。有什么想法吗?我对C#完全陌生-以下是我的一些控制器:.net 什么';这个密码怎么了?Can';t按十进制和日期搜索,.net,model-view-controller,nhibernate,.net,Model View Controller,Nhibernate,我正在使用jQuery表,它使用ASP.NETMVC4.5连接到我网页中数据库中的一个表 我已经编写了我的控制器,我正在尝试使用搜索框搜索数据,到目前为止,我可以搜索诸如姓名、ID、电话之类的内容,因为它们在我的类中都定义为字符串,但当涉及到按日期或工资(小数)搜索时,它将不起作用。有什么想法吗?我对C#完全陌生-以下是我的一些控制器: public ActionResult BankPaymentListing(string id)// { //using (var session =
public ActionResult BankPaymentListing(string id)//
{
//using (var session = NHibernateHelper.OpenSession())
//{
// if (session.IsNotNull())
// {
// using (var transaction = session.BeginTransaction())
// {
// try
// {
// var fieldName = new[] {"RCNO"}.ToList();
// ViewBag.message = DataRetrieveHelper.GetNextRunningNumReset(session, "CLPAYM", fieldName, DateTime.Now, true, new TimeSpan(0, 0, 0 ,0 ,1));
// transaction.Commit();
// }
// catch (Exception ex)
// {
// ex.WriteExToLog();
// transaction.Rollback();
// }
// }
// }
//}
ViewBag.ID = id;
return View();
}
[HttpPost]
public ActionResult BankPaymentListingAction(FormCollection fm, McJqDataTableParameter param)
{
var rtObj = new McJqDatatableServerReturnObject
{
sEcho = param.sEcho,
iTotalRecords = 97,
iTotalDisplayRecords = 3,
aaData = new List<string[]>()
};
try
{
if (fm != null)
{
var allFiledList = new List<string>();
if (fm["sColumns"].IsNotNull())
{
var filterFields = fm["sColumns"].Split(',');
allFiledList.AddRange(filterFields.Where(t => t.IsNotNullNotTrimEmpty()));
}
var ascArray = new ArrayList();
var descArray = new ArrayList();
for (var c = 0; c < param.iColumns; c++)
{
if (fm["sSortDir_" + c] == null) continue;
if (fm["sSortDir_" + c].ToUpper().CompareEq("ASC"))
{
ascArray.Add(allFiledList[Convert.ToInt32(fm["iSortCol_0"])]);
}
else if (fm["sSortDir_" + c].ToUpper().CompareEq("DESC"))
{
descArray.Add(allFiledList[Convert.ToInt32(fm["iSortCol_0"])]);
}
}
var ascSort = string.Join(",", ascArray.ToArray());
var descSort = string.Join(",", descArray.ToArray());
ascArray.Clear();
descArray.Clear();
if (ascSort.IsNullOrTrimEmpty() && descSort.IsNullOrTrimEmpty())
{
ascSort = allFiledList[0];
}
using (var session = NHibernateHelper.OpenSession())
{
if (session.IsNotNull())
{
var criteria = session.CreateCriteria(typeof(Pybkdtl))
.Add(Restrictions.Eq("PybkhdrId", new Guid(fm["ID"])));
if (!string.IsNullOrEmpty(fm["SearchValue"]) && !string.IsNullOrEmpty(fm["SearchType"]))
{
criteria.Add(Restrictions.Like(fm["SearchType"], "%" + fm["SearchValue"] + "%"));
}
if (!string.IsNullOrEmpty(fm["SearchValue"]) && !string.IsNullOrEmpty(fm["SearchType"]))
{
criteria.Add(Restrictions.Like(fm["SearchType"], "%" + fm["Icno"] + "%"));
}
if (!string.IsNullOrEmpty(fm["SearchValue"]) && !string.IsNullOrEmpty(fm["SearchType"]))
{
criteria.Add(Restrictions.Like(fm["SearchType"], "%" + fm["MobileNo"] + "%"));
}
if (!string.IsNullOrEmpty(fm["SearchValue"]) && !string.IsNullOrEmpty(fm["SearchType"]))
{
criteria.Add(Restrictions.Like(fm["SearchType"], "%" + fm["ReferenceNo"] + "%"));
//decimal SearchValue = decimal.Parse(fm["SearchValue"]);
}
decimal Amount;
if (decimal.TryParse(fm["searchValue"], out Amount))
{
criteria.Add(Restrictions.Eq(fm["searchValue"], "Amount"));
}
DateTime date;
if (DateTime.TryParseExact(fm["SearchValue"], "dd/MM/YYYY", new CultureInfo("en-US"), DateTimeStyles.None, out date))
{
criteria.Add(Expression.Ge(fm["TransactionDate"]
criteria.Add(Expression.Le(fm["TransactionDate"],
}
公共操作结果BankPaymentListing(字符串id)//
{
//使用(var session=NHibernateHelper.OpenSession())
//{
//if(session.IsNotNull())
// {
//使用(var transaction=session.BeginTransaction())
// {
//试一试
// {
//var fieldName=new[]{“RCNO”}.ToList();
//ViewBag.message=DataRetrieveHelper.GetNextRunningNumReset(会话,“CLPAYM”,字段名,DateTime.Now,true,新时间跨度(0,0,0,0,1));
//Commit();
// }
//捕获(例外情况除外)
// {
//例如WriteExToLog();
//transaction.Rollback();
// }
// }
// }
//}
ViewBag.ID=ID;
返回视图();
}
[HttpPost]
公共操作结果BankPaymentListingAction(FormCollection fm,McJqDataTableParameter参数)
{
var rtObj=新的McJqDatatableServerReturnObject
{
sEcho=param.sEcho,
iTotalRecords=97,
iTotalDisplayRecords=3,
aaData=新列表()
};
尝试
{
如果(fm!=null)
{
var allFiledList=新列表();
if(fm[“sColumns”].IsNotNull())
{
var filterFields=fm[“sColumns”]。拆分(',');
AddRange(filterFields.Where(t=>t.IsNotNullNotTrimEmpty());
}
var ascArray=newarraylist();
var descArray=new ArrayList();
对于(var c=0;c
参数不正确:限制。Eq(fm[“searchValue”],“Amount”)
应该是限制。Eq(“Amount”,Amount))
除此之外,代码看起来很混乱:
- 只发布了一半的代码。在中间结束
- 不符合.NET命名约定
- 没有错误处理的过多空检查
TryParse
将返回false,但你的代码永远不会警告你。我删除了一些不必要的代码,是的,它工作了,但如果我想按小数点或日期搜索…我想添加条件可能有问题,但我不知道是哪一个。我想你添加了代码,这让事情变得更糟。有太多的地方可能出错