2013-05-28 68 views
0

嗨我正在使用DataTableDevaultView.RowFilter来显示一个DataGridViewDataTable DefaultView筛选字符串与“转换()”

我有一个日期列(dd/mm/yyyy)。

String filter = String.Format(@"account_name LIKE '{0}*' AND type_name='{2}' AND Convert(transaction_date, System.DateTime) < '{1}' OR is_edited ='true' ", this.accountName, this.dateTimePickerTransactionFrom.Value.ToString(), this.radioButtonDebit.Checked ? "Debit" : "Credit"); 
transactionsAll.DefaultView.RowFilter = filter; 
DefaultView_ListChanged(); 

它在错误结束:

String was not recognized as a valid DateTime.

+0

怎么看起来像this.dateTimePickerTransactionFrom.Value?你可以分享吗? –

+0

你的意思是问题出在transaction_date? – matzone

+0

dateTimePickerTransactionFrom.Value是typeOf(DateTime), –

回答

0

谢谢你们,
我解决了这个问题。
我从

SELECT  transactions.transaction_id, transactions.transaction_amound, CONVERT(char(10), transactions.transaction_date, 103) AS transaction_date, 
        transaction_type.type_name, transaction_type.description, accounts.account_name, accounts.user_id 
FROM   transactions INNER JOIN 
        transaction_type ON transactions.type_id = transaction_type.type_id INNER JOIN 
        accounts ON transactions.account_id = accounts.account_id 
WHERE  (accounts.user_id = @UserId) 

改变了DB查询要

SELECT  transactions.transaction_id, transactions.transaction_amound, transactions.transaction_date, transaction_type.type_name, 
        transaction_type.description, accounts.account_name, accounts.user_id 
FROM   transactions INNER JOIN 
        transaction_type ON transactions.type_id = transaction_type.type_id INNER JOIN 
        accounts ON transactions.account_id = accounts.account_id 
WHERE  (accounts.user_id = @UserId) 


private void ConstraintChanged() 
    { 
     String filter = String.Format(@"account_name LIKE '{0}*' AND type_name='{2}' " + 
       @"AND Convert(transaction_date, System.DateTime) > '{1}' OR is_edited ='true' ", 
      this.accountName, 
      this.dateTimePickerTransactionFrom.Value, 
      this.radioButtonDebit.Checked ? "Debit" : "Credit"); 
     transactionsAll.DefaultView.RowFilter = filter; 
     DefaultView_ListChanged(); 
    }