如何将datetime值作为参数传递以从数据表中选择行? [英] How do I pass datetime value as a parameter to select rows from a datatable?
问题描述
大家好,我有一个名为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屋!