2012-06-29 60 views
-3

我想通過自動增量ID (textbox and one button)來搜索人員。我已經使用dataset並在C#winforms:Microsoft Report viewer

Fill,Getdata --> configure

SQL語句:

SELECT ID, FirstName, LastName, ContactNo, Address, Date, NameOfJob, OtherJob, 
Impression, BackPage, NameOfPage, PaperSize, PrintingSize, 
DesignRupees, JobRupees, Matter, BlackPlate, BlackPlateRupees, SinglePlate, 
SinglePlateRupees, MultiPlate, MultiPlateRupees, Platename, 
Lamination, Creasing, Binding, Other, Total, Receive, Due, LastRemaining 
FROM bill WHERE [email protected] 

後,我已經運行該程序,然後2錯誤顯示:

  1. 無法從字符串轉換爲十進制
  2. 最好的重載方法匹配WindowsFormsApplication9.DataSet1TableAdapters.billTableAdapter.Fill(WindowsFormsApplication9.DataSet1.billDataTable, decimal) has some invalid arguments錯誤在這行

    this.billTableAdapter.Fill(this.DataSet1.bill, txt_search.Text);

+0

錯誤消息「無法從字符串轉換爲十進制」是相當清楚的。您希望在發送小數時發送一個字符串。 –

+0

現在我已經做了一切之後,一個新的問題生成...現在錯誤沒有顯示,但是當我通過ID搜索,然後約束異常生成:未能啓用約束一個或多個行包含違反非空,獨特,關鍵約束。 – ITS

回答

0

所以你的錯誤是:

cannot convert from string to decimal

WindowsFormsApplication9.DataSet1TableAdapters.billTableAdapter.Fill(WindowsFormsApplication9.DataSet1.billDataTable, decimal);

如果你看一下你正在試圖

放入Fill()方法:

this.billTableAdapter.Fill(this.DataSet1.bill, txt_search.Text);

你的錯誤是告訴你的是,它不能將字符串轉換成十進制。您的填充方法需要一個小數,因爲它是第二個參數,但是您提供了一個字符串(txt_search.Text)。

您需要首先將字符串轉換/解析爲小數,然後用此值調用.Fill()方法。

看看decimal.Parse()decimal.TryParse()

+1

現在錯誤未顯示,但當我通過ID搜索,然後生成約束異常:未能啓用約束一個或多個行包含違反非空,唯一或外鍵約束的值。 – ITS

+0

ITS:這是一個SQL錯誤。你應該看看你的表,外鍵和其他約束來試圖確定問題。如果你沒有運氣,然後發佈一個新的問題。 –

+0

thnkxx先生....現在evrything是好的!thnkxx很多 – ITS

0

第二個參數應該是decimal,但是您傳遞的值爲string,即txt_search.Text

所以,你可以強制轉換成十進制:

this.billTableAdapter.Fill(this.DataSet1.bill, (decimal)txt_search.Text); 

this.billTableAdapter.Fill(this.DataSet1.bill, decimal.Parse(txt_search.Text)); 
+0

現在錯誤沒有顯示,但是當我通過ID搜索,然後生成約束異常:未能啓用約束一個或多個行包含違反非空,唯一或外鍵約束的值。 – ITS

+0

有可能是一些外鍵違規存在..嘗試調試代碼並檢查'Dataset1'中的值。@ ITS –

+0

現在確定.... thnkxx你非常多! – ITS