C# 在crystal reports中按发票ID进行搜索
我只想看到我输入的发票ID的数据,所以我尝试了这段代码C# 在crystal reports中按发票ID进行搜索,c#,sql-server,crystal-reports,C#,Sql Server,Crystal Reports,我只想看到我输入的发票ID的数据,所以我尝试了这段代码 Crystal_Bill cr = new Crystal_Bill(); SqlConnection conect = new SqlConnection("Data Source=DESKTOP-R34C6VV\\SQL;Initial Catalog=Restaurant;Integrated Security=True"); string sql = "Select * from Or
Crystal_Bill cr = new Crystal_Bill();
SqlConnection conect = new SqlConnection("Data Source=DESKTOP-R34C6VV\\SQL;Initial Catalog=Restaurant;Integrated Security=True");
string sql = "Select * from Orders where InvoiceID='"+PrepareBill_txt1.Text+"'";
DataSet dt = new DataSet();
SqlDataAdapter adapter = new SqlDataAdapter(sql,conect);
adapter.Fill(dt,"Orders");
cr.SetDataSource(dt.Tables["Orders"]);
open.crystalReportViewer1.ReportSource = cr;
Print open = new Print();
open.SHow();
但它没有工作,我仍然得到数据库中的所有数据,这些代码有问题吗?有人能修好吗?谢谢
这是我的数据库
CREATE TABLE [dbo].[Orders] (
[InvoiceID] INT NOT NULL,
[ItemNO] INT NOT NULL,
[Category] VARCHAR (50) NULL,
[ItemName] VARCHAR (50) NULL,
[Price] FLOAT (53) NULL,
[Qty] INT NOT NULL,
[SubTotal] FLOAT (53) NULL,
CONSTRAINT [Orders_FK1] FOREIGN KEY ([InvoiceID]) REFERENCES [dbo].[Invoice] ([InvoiceID])
))>P>按照您的代码,您在SQL查询中传递“强”发票ID <强>作为参数值,您的发票ID有“代码> INT/CODE >数据类型,并且您试图通过查询中的单个引用传递它,以便将发票ID视为<代码> VARCHAR < /代码>值。您可以删除单引号,然后重试。那可能对你有帮助 i.g:
string sql = "Select * from Orders where InvoiceID="+ PrepareBill_txt1.Text +"";
按照您的代码,您在SQL查询中传递“强”发票ID <强>作为参数值,您的发票ID有“代码> INT/CODE >数据类型,并且您试图通过查询中的单个引用传递它,以便将发票ID视为<代码> VARCHAR < /代码>值。您可以删除单引号,然后重试。那可能对你有帮助
i.g:string sql = "Select * from Orders where InvoiceID="+ PrepareBill_txt1.Text +"";
在bobby tables访问之前,您需要阅读、理解并开始在查询中使用参数。另外,您应该将连接和命令对象包装到USING语句中。您的查询看起来还可以。检查
InvoiceID
。它是否获得了PrepareBill\u txt1.Text
的精确值。正如肖恩所说,有一件事你应该使用参数化查询来防止SQL注入。在bobby tables来访之前,你需要阅读、理解并开始在你的查询中使用参数。另外,您应该将连接和命令对象包装到USING语句中。您的查询看起来还可以。检查InvoiceID
。它是否获得了PrepareBill\u txt1.Text
的精确值。正如肖恩所说,有一件事应该使用参数化查询来防止SQL注入。