Я хочу выбрать данные из 2 таблиц. Это 2 таблицы
CREATE TABLE [dbo].[Invoice] (
[InvoiceID] INT IDENTITY (1, 1) NOT NULL,
[CustomerName] VARCHAR (50) NULL,
[Telephone] CHAR (10) NULL,
[Date] VARCHAR (30) NULL,
[Total] FLOAT (53) NULL,
[Discount] FLOAT (53) NULL,
[ToPay] FLOAT (53) NULL,
CONSTRAINT [Invoice_PK1] PRIMARY KEY CLUSTERED ([InvoiceID] ASC)
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])
Поэтому я хочу выбрать данные из этих 2 таблиц по идентификатору счета. Это мои коды
SqlConnection conect = new SqlConnection("Data Source=DESKTOP-R34C6VV\\SQL;Initial Catalog=Restaurant;Integrated Security=True");
try
{
String str = "Data Source=DESKTOP-R34C6VV\\SQL;Initial Catalog=Restaurant;Integrated Security=True";
String query = "select * from Invoice where InvoiceID = '" + value + "'";
SqlConnection con = null;
con = new SqlConnection(str);
SqlCommand cmd = new SqlCommand(query, con);
SqlDataReader view;
con.Open();
view = cmd.ExecuteReader();
if (view.HasRows)
{
if (view.Read())
{
Cus_Name = view.GetString(1);
Cus_Tel = view.GetString(2);
Date = view.GetString(3);
Total = view.GetDouble(4);
Discount = view.GetDouble(5);
ToPay = view.GetDouble(6);
PrepareBill_txt1.Clear();
go = 1;
if (go == 1)
{
Print open = new Print();
Crystal_Bill cr = new Crystal_Bill();
TextObject var1 = (TextObject)cr.ReportDefinition.Sections["Section1"].ReportObjects["Text17"];
TextObject var3 = (TextObject)cr.ReportDefinition.Sections["Section1"].ReportObjects["Text19"];
TextObject var4 = (TextObject)cr.ReportDefinition.Sections["Section1"].ReportObjects["Text20"];
TextObject var6 = (TextObject)cr.ReportDefinition.Sections["Section1"].ReportObjects["Text22"];
TextObject var7 = (TextObject)cr.ReportDefinition.Sections["Section4"].ReportObjects["Text23"];
TextObject var8 = (TextObject)cr.ReportDefinition.Sections["Section4"].ReportObjects["Text24"];
TextObject var9 = (TextObject)cr.ReportDefinition.Sections["Section4"].ReportObjects["Text25"];
var1.Text = value;
var3.Text = Date;
var4.Text = Cus_Name;
var6.Text = Cus_Tel;
var7.Text = Total.ToString("0.00");
var8.Text = Discount.ToString("0.00");
var9.Text = ToPay.ToString("0.00");
int a = System.Convert.ToInt32(value);
cr.SetParameterValue("pInvoiceID", a);
open.crystalReportViewer1.ReportSource = cr;
open.Show();
, и я создал метод для выбора другой таблицы. Вот мои коды для этого метода:
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"]);
Таким образом, метод работает в одиночку, а другой работает в одиночку, но когда я пытаюсь объединить их, я не получаю никакого результата, только первый код работаетСтол Invoic. Я пытался использовать этот метод в программе, но он не работал. Это для моего проекта колледжа.
Когда я запускаю программу, я получаю все данные в базе данных. Я хочу выбрать его по InvoiceID, как метод, который я создал. Это мой отчет Crystal Report: