2013-07-11 17 views
0

我有存儲過程來顯示我的數據庫中的數據。使用SQL Server 2008我的存儲過程像下面在vb.net中綁定存儲過程的參數供應

USE [RSUPDB] 
GO 
/****** Object: StoredProcedure [dbo].[spSPDMonStockProductHarian] Script Date: 07/11/2013 14:56:53 ******/ 
SET ANSI_NULLS ON 
GO 
SET QUOTED_IDENTIFIER ON 
GO 
-- ============================================= 
-- Author:  <Author,,Name> 
-- Create date: <Create Date,,> 
-- Description: <Description,,> 
-- ============================================= 
ALTER PROCEDURE [dbo].[spSPDMonStockProductHarian] 
    -- Add the parameters for the stored procedure here 
    @Tanggal Smalldatetime, 
    @WHSID  Int 
AS 
BEGIN 
    -- SET NOCOUNT ON added to prevent extra result sets from 
    -- interfering with SELECT statements. 
    SET NOCOUNT ON; 

    -- Insert statements for procedure here 
    SELECT NoReff, ProductID,Qnty , CreatedBy, CreatedDate, 
         LastUpdatedBy, LastUpdatedDate, Computer, ComputerDate 
FROM   tblSPDTrnHasilProduksiDtl 
Where [email protected] 

END 

我稱之爲用vb.net存儲過程像下面

Private Sub CmRefresh_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmRefresh.Click 
    Dim i As Integer 

    Dim strCon1 As String = "server='ip server'; database=database name; user=user;password=password;" 
    Dim cmd As SqlCommand = New SqlCommand("spSPDMonStockProductHarian", New SqlConnection(strCon1)) 
    'cmd.CommandText = "SELECT * FROM tblSPDTrnHasilProduksiDtl" 
    With cmd 

     .Parameters.Add("@Tanggal", SqlDbType.SmallDateTime).Value = Format(CDate(DateTimePicker1.Value), "dd/MM/yyyy") 
     .Parameters.AddWithValue("@WhsID", CboWhs.SelectedValue) 
     .Parameters.AddWithValue("@NoReff", SqlDbType.VarChar).Value = Listdata.Rows(i).Cells(0).FormattedValue.ToString 
     .Parameters.AddWithValue("@ProductID", SqlDbType.VarChar).Value = Listdata.Rows(i).Cells(1).FormattedValue.ToString 
     .Parameters.AddWithValue("@Qnty", SqlDbType.VarChar).Value = Listdata.Rows(i).Cells(2).FormattedValue.ToString 
     .Parameters.AddWithValue("@CreatedBy", SqlDbType.VarChar).Value = Listdata.Rows(i).Cells(3).FormattedValue.ToString 
     .Parameters.AddWithValue("@CreatedDate", SqlDbType.VarChar).Value = Listdata.Rows(i).Cells(4).FormattedValue.ToString 
     .Parameters.AddWithValue("@LastUpdatedBy", SqlDbType.VarChar).Value = Listdata.Rows(i).Cells(5).FormattedValue.ToString 
     .Parameters.AddWithValue("@LastUpdatedDate", SqlDbType.VarChar).Value = Listdata.Rows(i).Cells(6).FormattedValue.ToString 
     .Parameters.AddWithValue("@Computer", SqlDbType.VarChar).Value = Listdata.Rows(i).Cells(7).FormattedValue.ToString 
     .Parameters.AddWithValue("@Computerdate", SqlDbType.VarChar).Value = Listdata.Rows(i).Cells(8).FormattedValue.ToString 
     .Connection.Open() 
    End With 
    Listdata.DataSource = cmd.ExecuteReader 

    Koneksi.Close() 
    Koneksi.Close() 
End Sub 

我,當我執行這個方案,消息還是錯誤的問題

程序或函數'spSPDMonStockProductHarian'預計參數'@Tanggal',未提供

我沒有得到什麼問題?這使我的頭堆棧,所以任何解決方案將欣賞!

回答

1

它被註釋掉

'.Parameters.Add("@Tanggal", SqlDbType.SmallDateTime).Value = Format(CDate(DateTimePicker1.Value), "dd/MM/yyyy") 

嘗試在beggining刪除該帖,

說,你的代碼將用於其他原因而失敗。

該程序預計只有兩個參數不是十一,@Tanggal參數應該是一個datatime而不是格式爲DateTime的字符串,您需要將CommandType屬性設置爲StoredProcedure。

更正確的方法來你的程序可能是這個

Private Sub CmRefresh_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmRefresh.Click 
    Dim strCon1 = "server=serverIP; database=database name; user=user;password=password;" 
    Dim cmdText = "spSPDMonStockProductHarian" 
    Using con = new SqlConnection(strCon1) 
    Using cmd = New SqlCommand(cmdText, con) 
     With cmd 
      .CommandType = CommandType.StoredProcedure 
      .Parameters.Add("@Tanggal", SqlDbType.SmallDateTime).Value = dateTimePicker1.Value 
      .Parameters.AddWithValue("@WhsID", CboWhs.SelectedValue) 
     End With 
     con.Open() 
     Listdata.DataSource = cmd.ExecuteReader 
    End Using 
    End Using 
End Sub 

我已刪除未使用的參數,並通過了@Tanggal參數作爲一個DateTime不爲字符串。還添加了Using Statement正確關閉和配置連接對象

+0

ya我的錯誤tha引用仍然存在,我認爲通過忽略該消息不會出現..可以舉一個例子... –

+0

成功消除郵件錯誤但有新的問題,我的數據我什麼都沒有顯示 –

+0

嘗試從Sql Server Management Studio調用該過程(你有時間部分在字段?) – Steve