我正在編碼過濾器搜索功能。也就是說,用戶將根據 的任何記錄搜索數據,包括日期時間或姓名,號碼。存儲過程不返回任何數據asp.net sql server 2008 r2
這裏我也從其他表中返回數據。所以我也實現了一個內部連接。 爲此,我的存儲過程如下 -
ALTER PROC [dbo].[spFilterSearch]
@var1 VARCHAR(10),
@var2 VARCHAR(10),
@Printdate DATETIME,
@ToDate varchar(10),
@FromDate varchar(10)
AS BEGIN
DECLARE @td DateTime SET @td=CONVERT(DATETIME,@ToDate,105)
DECLARE @fd DateTime SET @fd= CONVERT(DATETIME,@FromDate,105)
if(@Printdate <> NULL)
BEGIN
SELECT cVar1, cVar2, Printdate,
bg.Fname AS Name
FROM dbo.Table1
INNER JOIN dbo.jTable2 jt ON Table1.id = jt.id
WHERE(cVar1 LIKE @var1+'%') AND
(cVar2 LIKE @var2+'%')
AND (convert(datetime,Printdate,105)[email protected])
END
ELSE
BEGIN
SELECT cVar1, cVar2, Printdate,
bg.Fname AS Name
FROM dbo.Table1
INNER JOIN dbo.jTable2 jt ON Table1.id = jt.id
WHERE(cVar1 LIKE @var1+'%') AND
(cVar2 LIKE @var2+'%')
AND (convert(DATETIME,Printdate,105)>[email protected] AND convert(DATETIME,Printdate,105)<[email protected])
END
END
(此過程不返回任何記錄) 在前端 我都喜歡編碼,發送空日期我已經創建FPdate
property
如下 public DateTime? FPdate { get; set; }
,並以這種方式,我在search event handler
if (txtPrintedOn.Text != "")
{
string[] dtt = txtPrintedOn.Text.Split(' ');
objprop.FPdate = Convert.ToDateTime(dtt);
}
else
{
objprop.FPdate = null;
}
,並使用它發送參數的形式從我已經寫了代碼業務層像這個 -
if (prop.FPdate.Equals(null))
{
cmd.Parameters.AddWithValue("@Printdate", SqlDbType.DateTime).Value = Convert.DBNull;
}
else
{
cmd.Parameters.Add("@Printdate", SqlDbType.DateTime).Value = prop.FPdate;
}
if (prop.ToDate != null)
cmd.Parameters.AddWithValue("@ToDate", SqlDbType.VarChar).Value = prop.ToDate;
else cmd.Parameters.Add("@ToDate", SqlDbType.VarChar).Value = Convert.DBNull;
在年底的數據集是空車返回。幾個小時後,我的頭撞牆,但沒有得到任何線索
我在哪裏出錯了。請提出一種方法讓它運行。
感謝
通過在ssms中執行sp獲取記錄嗎? – Mukund 2014-10-10 05:15:25
你在sqlserver中缺少@FPdate參數嗎? – Mukund 2014-10-10 05:20:27
是的,嘗試在管理工作室執行你的程序。 – 2014-10-10 05:20:44