выбрать по дате, введенной пользователем - PullRequest
3 голосов
/ 09 августа 2011

Привет, ребята.Я использую приведенный ниже запрос для запуска оператора SQL. Он работает нормально.Я хотел бы знать, как я могу изменить запрос для выбора по дате, которую пользователь вводит в ASP.NET.Это означает, что мне нужно изменить деталь:

WHERE TRANSACTION_DATE = '02-AUG-2006'

Есть идеи, пожалуйста?Спасибо за вашу помощь

ЗАПРОС Я ИСПОЛЬЗУЮ

INSERT INTO TRANSACTION (TRX_UNIT, TRX_DATE, TRX_USR)
SELECT SOURCE_SYSTEM_CHANNEL_CODE, TRANSACTION_DATE, USER_CODE
FROM FCR_TRANSACTION
WHERE TRANSACTION_DATE = '02-AUG-2006'

Ответы [ 3 ]

6 голосов
/ 09 августа 2011

А как же:

// Create a connection object and data adapter
MySqlConnection cnx = new MySqlConnection(connectionString);

// Create a SQL command object
string cmdText = "INSERT INTO TRANSACTION (TRX_UNIT, TRX, TRX_USR) ";
cmdText += "SELECT SOURCE_SYSTEM_CHANNEL_CODE, TRANSACTION_DATE, USER_CODE ";
cmdText += "FROM FCR_TRANSACTION ";
cmdText += "WHERE TRANSACTION_DATE = @TransactionDate";

MySqlCommand cmd = new MySqlCommand(cmdText, cnx);
cmd .Parameters.Add("@TransactionDate", YourDate); // <-- Insert date here
// Set the command type to text
cmd.CommandType = CommandType.Text;
cmd.ExecuteNonQuery();
0 голосов
/ 09 августа 2011

Если вы действительно хотите выполнить запрос по точной дате, вам нужно проверить ввод пользователя и добавить в запрос параметр (это только псевдокод):

        string userInput = txtDate.Text;
        DateTime parsedDate;
        if (DateTime.TryParse(userInput, out parsedDate)) {
             // valid date, add a Parameter to your command
            var cmd = ... // create your DB Command here
            cmd.CommandText = "SELECT .... WHERE Transaction_Date = @txDate";
            cmd .Parameters.Add("@txDate", parsedDate); 
            // execute your command ...
        }
0 голосов
/ 09 августа 2011

у вас должно быть имя для поля даты, в которое пользователь вводит дату.допустим, вы решили назвать его «datename», после чего $ _POST («datename») возвращает текст, введенный в поле.так что теперь оператор WHERE становится

WHERE TRANSACTION_DATE = '$_POST("datename")'

, если это не сработает, попробуйте

WHERE TRANSACTION_DATE = $_POST("datename")

. Все это предполагает, что вы сохранили метод передачи формы как POST .... если он у вас естькак GET, просто замените $ _POST на $ _GET здесь ..

Это должно работать.Если это не так, мои извинения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...