存储过程中如何传递日期型参数,麻烦高手指点一下,谢谢!
我有一个存储过程,用来从数据源表中取出符合参数传递日期的数据到另一临时表中,这个日期是用户从界面上的组合框中选择的,而组合框里的数据通过数据绑定到一个查询视图(在查询视图中,有两列数据,一列是在组合框里显示的××××年××月,另一列是用来取得第一列数据的源数据)中取到。
当用户选择组合框里的一个日期时,通过数据读取器取到对应的源数据,并用一个日期型变量把这个数据保存起来。
然后通过传递这个日期型数据到存储过程中,得到从数据源中取到这个日期的记录的目的。具体代码如下:
但每次执行时,都提示以下错误:
SqlDateTime 溢出。必须介于 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM 之间。
ALTER PROCEDURE dbo.distribute_base( @kaohe_term datetime )ASbegin select * into basedist_end_temp from basedist_end_product_sort where kaohe_term=@kaohe_termend RETURN
'以下代码从组合框中获取所选考核期间对应的考核具体时间 Dim kaohe_term As DateTime Dim cn As SqlClient.SqlConnection = New SqlClient.SqlConnection("workstation id=WANGQIANG;packet size=4096;user id=sa;" & _ "password=120979120979;data source=WANGQIANG;persist security info=False;initial catalog=assessonline") If cn.State = ConnectionState.Closed Then cn.Open() End If Dim sqltime As SqlClient.SqlCommand = New SqlClient.SqlCommand("select distinct 所属期间,kaohe_term from " & _ "kaohe_term where kaohe_term='" & Me.select_kaoheterm.SelectedValue & "'", cn) Dim sqlreader As SqlClient.SqlDataReader sqlreader = sqltime.ExecuteReader() Do While sqlreader.Read kaohe_term = sqlreader("所属期间") Loop sqlreader.Close() Response.Write(kaohe_term.GetType().Name) Response.Write(" <script> alert('" & Me.select_kaoheterm.SelectedValue & "') </script> ") '以下代码在生成数据前先删除所选考核期内生成的历史数据 Dim datamatching As SqlClient.SqlCommand = New SqlClient.SqlCommand("delete from projectexpense_matching where kaohe_term='" & kaohe_term & "'", cn) datamatching.ExecuteNonQuery() Dim datanomatching As SqlClient.SqlCommand = New SqlClient.SqlCommand("delete from projectexpense_nomatching where kaohe_term='" & kaohe_term & "'", cn) datanomatching.ExecuteNonQuery() 'Response.Write("<script>alter('" & kaohe_term & "')</script>") '以下代码为整理分摊率数据表 表名:basedist_end_temp sqlcmddistribute_base.Connection = cn sqlcmddistribute_base.CommandType = CommandType.StoredProcedure sqlcmddistribute_base.CommandText = "distribute_base" sqlcmddistribute_base.Parameters("@kaohe_term").Value = kaohe_term 'sqlcmddistribute_base.Parameters("@expense_name").Value = Me.Select1.Value Dim SprocResults As SqlClient.SqlDataReader If cn.State = ConnectionState.Closed Then cn.Open() End If SprocResults = sqlcmddistribute_base.ExecuteReader() '程序执行到这里时总报错,说数据类型不对 SprocResults.Close()