当使用datepart函数从数据库中选择日期时,它给出了错误---为datepart指定的参数1无效。 [英] when m using datepart function for select Date from database it give me error --- Invalid parameter 1 specified for datepart.

查看:568
本文介绍了当使用datepart函数从数据库中选择日期时,它给出了错误---为datepart指定的参数1无效。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想根据月号在tblbill中选择日期栏

这里用户选择下拉列表ddlmonth,其中包含项目1月,2月等等

和下拉列表ddlyear包含一个从现在起20年前进和后退年份的循环



 对于 intYear = DateTime.Now.Year  -   20    DateTime.Now.Year +  20  
ddlyear.Items.Add(intYear)
Next

<当用户点击按钮btnbillbymonth时,它给了我错误----

为datepart指定的参数1无效。
$


b $ b



 受保护  Sub  btnbillbymonth_Click( ByVal  sender  As  对象 ByVal  e  As  EventArgs)句柄 btnbillbymonth.Click 
myCalendar.Visible = False
ddlmonth.Visible = 错误
ddlyear.Visible = 错误
昏暗 cmdselect 作为 SqlCommand( select * from tblbill MONTH(Date)= DatePart('& ddlmonth.SelectedValue& ',Date)和year(Date)='& ddlyear.SelectedValue& ',con)
da = SqlDataAdapter(cmdselect)
dt = DataTable()
con.Open()
da.Fill( dt)
GridView1.DataSource = dt
GridView1.DataBind()
结束 Sub











i dnt明白我想失踪...

请帮帮我

解决方案

引用:

将varchar值'March'转换为数据类型int时转换失败。

这是因为绑定时没有为 DropDownList提供整数值价值。



您应该这样做...

 ddlmonth.Items。添加( new  ListItem(  1月  1))
ddlmonth.Items.Add( new ListItem( 二月 2))
.....



参考 - 如何:在列表Web服务器控件中添加项目 [ ^ ]


数据部分查询必须以这种方式使用



这是一个例子



SELECT DATEPART(yyyy,OrderDate)AS OrderYear,

DATEPART(mm,OrderDate)AS OrderMonth,

DATEPART(dd,OrderDate)AS OrderDay,

来自订单

WHERE OrderId = 1



和转换失败你传递的值而不是文本因此在数据库中检查一次是否为nvarchar或int,如果它的nvarchar然后传递jan等,如果它的int然后传递值

i want to select Date column in tblbill according to month number
here user select dropdownlist ddlmonth which have items "January" ,"Feburary" so on
and dropdownlist ddlyear contain a loop for 20 year forward and backword years from now

For intYear = DateTime.Now.Year - 20 To DateTime.Now.Year + 20
            ddlyear.Items.Add(intYear)
        Next



when user click on button btnbillbymonth it gives me error that ----
Invalid parameter 1 specified for datepart.


Protected Sub btnbillbymonth_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnbillbymonth.Click
        myCalendar.Visible = False
        ddlmonth.Visible = False
        ddlyear.Visible = False
        Dim cmdselect As New SqlCommand("select * from tblbill where MONTH(Date) = DatePart('" & ddlmonth.SelectedValue & "',Date) and year(Date) = '" & ddlyear.SelectedValue & "'   ", con)
        da = New SqlDataAdapter(cmdselect)
        dt = New DataTable()
        con.Open()
        da.Fill(dt)
        GridView1.DataSource = dt
        GridView1.DataBind()
    End Sub






i dnt understand want m missing here ...
please help me

解决方案

Quote:

Conversion failed when converting the varchar value 'March' to data type int.

That's because while Binding you have not provided the integer value for DropDownList value.

You should do like...

ddlmonth.Items.Add(new ListItem("January", "1"))
ddlmonth.Items.Add(new ListItem("February", "2"))
.....


Refer - How to: Add Items in List Web Server Controls [^]


Data part query has to be used in this way

its an example

SELECT DATEPART(yyyy,OrderDate) AS OrderYear,
DATEPART(mm,OrderDate) AS OrderMonth,
DATEPART(dd,OrderDate) AS OrderDay,
FROM Orders
WHERE OrderId=1

and coming to conversion failed ur passing value instead of text so check once in database whether the month is nvarchar or int if its nvarchar then pass jan etc if its int then pass values


这篇关于当使用datepart函数从数据库中选择日期时,它给出了错误---为datepart指定的参数1无效。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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