大家好。我使用以下查询来运行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'
答案 0 :(得分:6)
怎么样:
// 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();
答案 1 :(得分:0)
您必须拥有用户输入日期的日期字段的名称。让我们说你决定把它命名为'datename' 之后,$ _POST(“datename”)返回在字段中输入的文本。 所以现在WHERE语句变为
WHERE TRANSACTION_DATE = '$_POST("datename")'
如果不起作用,请尝试
WHERE TRANSACTION_DATE = $_POST("datename")
所有这一切都假设您将表单传输方法保留为POST ....如果您将其作为GET,只需将$ _POST替换为$ _GET此处..
这应该有效。如果没有,我道歉。
答案 2 :(得分:0)
如果您确实想要按确切日期查询,则必须验证Userinput,并添加参数 查询(这只是伪代码):
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 ...
}