如何将datetime值作为参数传递以从数据表中选择行? [英] How do I pass datetime value as a parameter to select rows from a datatable?

查看:77
本文介绍了如何将datetime值作为参数传递以从数据表中选择行?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好,我有一个名为shifttable的数据表。我希望通过传递datetime参数找出Rows,但它会产生与转换失败之前相同的错误。我需要的是如何传递数据表的参数。请给我帮忙。

这里是我的代码:

DateTime daterange = DateTime.now

DataRow [] foundrows = shifttable.Select( EMPLOYEEID ='+ empid.ToString()+'和STARTDATE< ='+ daterange +'和ENDDATE> ='+ daterange +');



在这种情况下,daterange的值是2017-11-23 8:06:34 nm。这就是我的代码生成错误的原因。所以我应该参数化我的代码。任何帮助请



我尝试过:



DateTime daterange = DateTime.now

DataRow [] foundrows = shifttable.Select(EMPLOYEEID ='+ empid.ToString()+'和STARTDATE< ='+ daterange +'和ENDDATE> =' + daterange +');

Hi every one, I have datatable named as shifttable. I want to find out Rows by passing datetime parameters but it generate the same error as before that is conversion failed . what I need is how to pass parameter for the datatable. may I gate help please.
here is my code:
DateTime daterange= DateTime.now
DataRow[] foundrows = shifttable.Select("EMPLOYEEID ='" + empid.ToString() + "' and STARTDATE<='" + daterange + "' and ENDDATE>='" + daterange + "'");

in this case ,the value of daterange is 2017-11-23 8:06:34 nm. that is why my code generate error. so I should parametrize my code. any help please

What I have tried:

DateTime daterange= DateTime.now
DataRow[] foundrows = shifttable.Select("EMPLOYEEID ='" + empid.ToString() + "' and STARTDATE<='" + daterange + "' and ENDDATE>='" + daterange + "'");

推荐答案

这是我的.cs代码



protected void Button_Date(object sender,EventArgs e)

{

if(Page.IsValid)

{

try < br $>
{



string dateFrom = DateFrom.Text; //文本框值

string dateto = DateTo.Text;

DateTime FromDt = DateTime.Parse(dateFrom); //在日期时间解析

DateTime ToDt = DateTime.Parse(dateto);

using(OracleConnection con = new OracleConnection(ConfigurationManager.ConnectionStrings [Connection_string]。ConnectionString ))

{

con.Open();

OracleCommand cmd = new OracleCommand(procfordate,con);

cmd.CommandType = CommandType.StoredProcedure;

cmd.Parameters.Add(new OracleParameter(mycur,

OracleDbType.RefCursor))。Direction = ParameterDirection .Output;

cmd.Parameters.Add(new OracleParameter(dd1,DateFrom)); //在ddatabase中发送

cmd.Parameters.Add(new OracleParameter(dd2,DateTo));

OracleDataAdapter Adp = new OracleDataAdapter(cmd);

DataSet ds = new DataSet();

Adp.Fill(ds);

con.Close();

返回ds;

}

....

}}}



数据库查询将帮助你在下面分享。我在输入的程序中作为dd1 dd2来自和到目前为止





创建或替换PROCEDURE PROCFORDATE(

MYCUR OUT SYS_REFCURSOR,

DD1日期,

DD2 DATE)



BEGIN

打开MYCUR

SELECT RECEIVEDDATE,O_FILENAME,

来自Table_name WHERE RECEIVEDDATE> = DD1和RECEIVEDDATE< = DD2

或使用

- BETWEEN DD1和DD2

ORDER BY 1 DESC;

END;
this is my .cs code

protected void Button_Date(object sender, EventArgs e)
{
if (Page.IsValid)
{
try
{

string dateFrom = DateFrom.Text; // textbox values
string dateto = DateTo.Text;
DateTime FromDt = DateTime.Parse(dateFrom); // parsing in date time
DateTime ToDt = DateTime.Parse(dateto);
using (OracleConnection con = new OracleConnection(ConfigurationManager.ConnectionStrings["Connection_string"].ConnectionString))
{
con.Open();
OracleCommand cmd = new OracleCommand("procfordate", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new OracleParameter("mycur",
OracleDbType.RefCursor)).Direction = ParameterDirection.Output;
cmd.Parameters.Add(new OracleParameter("dd1", DateFrom)); // sending in ddatabase
cmd.Parameters.Add(new OracleParameter("dd2", DateTo));
OracleDataAdapter Adp = new OracleDataAdapter(cmd);
DataSet ds = new DataSet();
Adp.Fill(ds);
con.Close();
return ds;
}
....
}}}

the database query will help u which m sharing below.in the procedure i had given input as the dd1 dd2 as from and to date


create or replace PROCEDURE PROCFORDATE(
MYCUR OUT SYS_REFCURSOR,
DD1 DATE,
DD2 DATE)
IS
BEGIN
OPEN MYCUR FOR
SELECT RECEIVEDDATE, O_FILENAME,
FROM Table_name WHERE RECEIVEDDATE>=DD1 and RECEIVEDDATE <=DD2
or use
-- BETWEEN DD1 and DD2
ORDER BY 1 DESC;
END;


这篇关于如何将datetime值作为参数传递以从数据表中选择行?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆