2010-07-07 214 views
1

我想存檔一個數據表到一個數據表,所以我可以通過存檔日期在表中找到它。我使用的是INSERT SQL語句如下:SQL函數幫助

INSERT INTO [VendorArchive] ([Booth], [Deposit], [Rent], [Electric], [Security], 
[AmountPaid], [DatePaid], [PeriodPaid], [TotalDue], [Notes], [ArchiveDate], 
[BalanceDue], GETDATE()); 

SELECT Booth, Deposit, Rent, Electric, Security AmountPaid, DatePaid, PeriodPaid, 
TotalDue, BalanceDue, Notes 
FROM Vendors 

我然後調用SQL函數在我的代碼按鈕單擊事件中:

private void vendorArchiveToolStripButton_Click(object sender, EventArgs e) 

     { 

      if (MessageBox.Show("Are you sure you wish to archive?", "Perform Archive", MessageBoxButtons.YesNo) == DialogResult.Yes) 

      { 

       vendorArchiveTableAdapter.PerformArchive(); 

       MessageBox.Show("Archive has completed."); 

      } 



     } 

當我調試,並擊中了存檔按鈕,我得到這個錯誤:「沒有超載的方法'PerformArchive'需要0個參數」

我不明白。我使用錯誤的SQL語句嗎?我是否需要在方法調用中將所有列添加爲argumnets?

請幫忙。

+0

你是如何做一個沒有值的插入? – Marko 2010-07-07 22:49:19

+0

在Visual Studio中右鍵單擊'vendorArchiveTableAdapter.PerformArchive();'行中的'PerformArchive'位點擊'Go to Definition'(或類似的東西)並查看它期望的參數 – 2010-07-07 22:50:01

+0

@Marko Ivanovski:他是試圖從一個表中選擇值並將它們插入到具有時間戳的另一個表中以便進行復制。 – 2010-07-07 22:57:20

回答

5

你的SQL查詢是錯誤的,但你得到的具體錯誤與你的SQL查詢無關。

您的項目中某處有一個名爲PerformArchive的方法,此方法至少需要一個參數。您需要爲該參數提供一個值。

假設您使用的是Visual Studio,請將光標放在方法名稱上,然後按F12轉到定義,然後您可以看到參數是什麼。


關於你的SQL你需要的東西是這樣的:

INSERT INTO [VendorArchive] (
    [Booth], [Deposit], [Rent], [Electric], [Security], [AmountPaid], [DatePaid], [PeriodPaid], [TotalDue], [BalanceDue], [Notes], [ArchiveDate] 
) 
SELECT 
    [Booth], [Deposit], [Rent], [Electric], [Security], [AmountPaid], [DatePaid], [PeriodPaid], [TotalDue], [BalanceDue], [Notes], GETDATE() 
FROM Vendors 

的錯誤,我有固定:

  • 刪除多餘的分號。
  • SecurityAmountPaid之間添加缺失的逗號。
  • 修復了列的順序,以便它們在INSERT和SELECT語句中匹配。
  • 移動GETDATE()以選擇列表而不是插入列列表。
0

將光標移到PerformArchive並按F12

看看方法簽名,並確保它匹配你調用它的地方。