PDA

View Full Version : سوال: تشخیص null بودن تصویر



saba106
دوشنبه 10 اسفند 1388, 00:45 صبح
سلام من تو یکی از table هام عکس دارم که میتونه null باشه. برای ویرایش table نیاز دارم که چک کنم اگه تصویر null نیس از دیتابیس بخونه. برای چک کردن null بودنش از پروسیجر زیر استفاده کردم

ALTER PROCEDURE dbo.checkpicnull

(
@edit nchar(20),
@flag3 int OUTPUT
)

AS
SET NOCOUNT ON;

if (select pic from users where iduser = @edit) is NULL
begin

set @flag3 = 1

end

RETURNولی مقدار flag برای عناصری که تصویر دارن و ندارن هردو صفره. این چک کردن رو با دیتاگرید هم انجام دادم ولی باز هم نتیجه ای نداد. میشه بگین مشکل از کجاس؟
مرسی

saba106
دوشنبه 10 اسفند 1388, 02:07 صبح
یه سوال دیگه هم داشتم. برای مقایسه رشته ها از چه دستوری باید استفاده کنم؟ من تاریخ رو به صورت رشته ذخیره کردم و میخام تاریخ اون روز رو از سیستم بگیرم و با تاریخ ثبت شده در دیتابیس مقایسه کنم که اونم به صورت رشته ذخیره شده. چی کار باید بکنم؟
مرسی

Asad.Safari
دوشنبه 10 اسفند 1388, 02:31 صبح
یه همچین چیزی رو امتحان کنید :


alter PROCEDURE dbo.checkpicnull
AS
if (select namee from tblCustomer where ID = 63) is NULL
begin
return 0
end
else
return 1

saba106
سه شنبه 11 اسفند 1388, 11:44 صبح
[quote=SIR_asad;921802]
کدم رو به این صورت تصیح کردم:

ALTER PROCEDURE dbo.checkpicnull

(
@edit nchar(20),
@flag3 int OUTPUT
)

AS
SET NOCOUNT ON;

if (select pic from users where iduser=@edit) is NULL
begin
return 0
end
else
return 1مرسی ولی تابع برای هر دو نوع با عکس و بدون عکس مقدار صفر رو برمیگردونه

hakelberfin
شنبه 15 اسفند 1388, 23:46 عصر
سلام

کد رو به این صورت اصلاح کنید



ALTER PROCEDURE dbo.checkpicnull
(
@edit nchar(20),
@flag3 int OUTPUT
)

AS
SET NOCOUNT ON;

DECLARE pic1 IMAGE
select pic1=pic from users where iduser = @edit
IF (@@ROWCOUNT <> 0)
IF (pic1 IS NULL )
begin
set @flag3 = 1
end

saba106
یک شنبه 16 اسفند 1388, 00:04 صبح
سلام

کد رو به این صورت اصلاح کنید



ALTER PROCEDURE dbo.checkpicnull
(
@edit nchar(20),
@flag3 int OUTPUT
)

AS
SET NOCOUNT ON;

DECLARE pic1 IMAGE
select pic1=pic from users where iduser = @edit
IF (@@ROWCOUNT <> 0)
IF (pic1 IS NULL )
begin
set @flag3 = 1
end

من از کد زیر برای فراخوانیش استفاده میکنم اشتباهه؟


SqlCommand cmd = new SqlCommand();
cmd.CommandText = "dbo.checkpicnull";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@edit", edit);
cmd.Parameters.AddWithValue("@flag3", flag3);
cmd.Connection = con;
con.Open();
cmd.ExecuteNonQuery();
con.Close();
if (flag3==1)
{
byte[] imageData = (byte[])dataGridView1.CurrentRow.Cells[4].Value;
//Initialize image variable
Image newImage;
//Read image data into a memory stream
using (MemoryStream ms = new MemoryStream(imageData, 0, imageData.Length))
{
ms.Write(imageData, 0, imageData.Length);
//Set image variable value using memory stream.
newImage = Image.FromStream(ms, true);
}
//set picture
pictureBox1.Image = newImage;
pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;

saba106
یک شنبه 16 اسفند 1388, 01:49 صبح
این erroe رو میده

'IMAGE' is not a recognized CURSOR option