PDA

View Full Version : select from bank



870056950
سه شنبه 15 اردیبهشت 1388, 13:48 عصر
سلام دوستان عزیز
من می خواهم از جدول فروشم آخرین کد را دریافت کنم، اما با توجه به تاریخ. یعنی در هر روز تعداد فاکتورهایی که صادر می شود را جداگانه ذخیره کنم. تاریخ سیستم را در label16 دارم و از همان جا در بانک ذخیره می کنم. و کد فاکتورها را هم در یک label نمایش می دهم. برای این کار از دستور زیر استفاده می کنم اما جواب نمی دهد. یعنی همه اش شماره 1 را نمایش می دهد:
sqlSelect = "SELECT * FROM SaleBank WHERE SaleCode =(SELECT MAX(SaleCode)FROM SaleBank)" + " And " + "(SaleDate " + "=" + " '" + label16.Text + "'" + ")";
لطفاً کد صحیح را به من بگوئید. با تشکر.

happy65_sh
سه شنبه 15 اردیبهشت 1388, 13:53 عصر
SELECT * FROM SaleBank WHERE SaleCode =(SELECT MAX(SaleCode) FROM SaleBank WHERE SaleDate= ' " + label16.Text + "’)

870056950
پنج شنبه 17 اردیبهشت 1388, 13:32 عصر
دوست من ممنون از پاسخت کد شما صحیح است اما باز هم جواب نمی دهد، یعنی اگر از label16 بگیرم جواب نمی دهد اگر به جای آن خودم یک تاریخ بنویسم تو کد برنامه جواب می دهد به نظر شما چه باید کرد؟ ضمن اینکه تاریخ سیستم همراه با ساعت هر یک ثتنیه update می شود.

happy65_sh
پنج شنبه 17 اردیبهشت 1388, 13:42 عصر
خوب احتمالا Label شما اشتباه پر می شه مثلا تاریخ را در دیتا بیست به شکل 1388/01/11
ذخیره کرده ای اما در Label به شکل 11/01/1387 مقدار دهی می شه بنابراین بهترین کار اینه که برنامه ات را به صورت خط به خط ودستی اجرا کنی و ببینی چه مقداری در Label ریخته می شه.

raziee
پنج شنبه 17 اردیبهشت 1388, 19:38 عصر
دوست من چرا به جای استفاده از T -SQL از StoredProcedure استفاده نمیکنی؟
این جوری هم خودت راهت تری هم احتمال خطا پایین تر میاد.

کد ساخت :


CREATE PROCEDURE SaleBank
(
@myDate Varchar(14)
)
AS
BEGIN
SELECT * FROM SaleBank WHERE SaleCode =(SELECT MAX(SaleCode) FROM SaleBank WHERE SaleDate= @myDate
END
GO

و همینطور برای استفاده در برنامه :


myCom = new SqlCommand();
myCom.CommandType = CommandType.StoredProcedure;
myCom.CommandText = "CityI";
myCom.Parameters.AddWithValue("@CityName", CityName);
myCom.ExecuteNonQuery();