2012-06-29 61 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