【问题标题】:C# winforms:Microsoft Report viewerC# winforms:微软报表查看器
【发布时间】:2012-06-30 16:50:01
【问题描述】:

我想通过自动递增 ID (textbox and one button) 搜索人员。我用过dataset 并在其中

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  ID=@ID

之后我运行程序然后显示 2 个错误:

  1. 无法从字符串转换为十进制
  2. 此行中WindowsFormsApplication9.DataSet1TableAdapters.billTableAdapter.Fill(WindowsFormsApplication9.DataSet1.billDataTable, decimal) has some invalid arguments错误的最佳重载方法匹配

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

【问题讨论】:

  • 错误信息“无法从字符串转换为十进制”非常清楚。当它需要一个小数时,您正在发送一个字符串。
  • 现在我已经完成了在生成一个新问题之后的所有操作...现在未显示错误,但是当我按 ID 搜索时,生成了约束异常:未能启用约束一个或多个行包含违反非null、唯一或外键约束。

标签: c# .net winforms dataset reportviewer


【解决方案1】:

所以你的错误是:

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()

【讨论】:

  • now 错误未显示,但当我按 ID 搜索时,生成约束异常:未能启用约束一个或多个行包含违反非空、唯一或外键约束的值。
  • ITS:这是一个 SQL 错误。您应该查看您的表、外键和其他约束来尝试确定问题。如果您没有运气,请发布一个新问题。
【解决方案2】:

第二个参数应该是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));

【讨论】:

  • now 错误未显示,但当我按 ID 搜索时,生成约束异常:未能启用约束一个或多个行包含违反非空、唯一或外键约束的值。
  • 可能存在某些外键违规问题。尝试调试代码并检查Dataset1.@ITS 中的值
  • 出了什么问题..?你为什么接受这个答案..? @ITS
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-02
相关资源
最近更新 更多