PDA

View Full Version : این خطا از چیست .



amir.khanlari
یک شنبه 09 دی 1386, 15:55 عصر
من یک برنامه نوشتم که بعد از اجرا ودر پس از اجرای یک پروسیجر این خطا گرفته می شود. لطفا دلیل این خطا را بگویید و اگر کد نیاز به اصلاح دارد آنرا اصلاح کنید
SqlConnection objconnection = new




SqlConnection("server=localhost;database=picturealbum;integrated security=true");

try
{
SqlCommand cmd = new SqlCommand();
cmd.Connection = objconnection;
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "selectpicture";
cmd.Parameters.AddWithValue("@al_id",int.Parse(textBox1.Text));
cmd.Parameters.Add("@picfile", SqlDbType.Binary).Direction = ParameterDirection.Output;
cmd.Parameters.Add("@pic_name", SqlDbType.NVarChar, 50).Direction = ParameterDirection.Output;
cmd.Parameters.Add("@pic_type", SqlDbType.NChar, 10).Direction = ParameterDirection.Output;
cmd.Parameters.Add("@pic_keyword", SqlDbType.NVarChar, 200).Direction = ParameterDirection.Output;
cmd.Parameters.Add("@pic_description", SqlDbType.NVarChar, 300).Direction = ParameterDirection.Output;
cmd.Parameters.Add("@pic_date", SqlDbType.DateTime).Direction = ParameterDirection.Output;
objconnection.Open();
cmd.ExecuteReader();
textBox5.Text = cmd.Parameters["@pic_name"].Value.ToString();
byte[] b=((byte[]) (cmd.Parameters["@picfile"].Value));
MemoryStream mem = new MemoryStream(b);

pictureBox1.Image = Image.FromStream(mem);

MohammadSoft
یک شنبه 09 دی 1386, 16:19 عصر
سلام
دوست عزیز چه خطایی میده ؟

amir.khanlari
یک شنبه 09 دی 1386, 17:33 عصر
سلام
دوست عزیز چه خطایی میده ؟

باید ببخشید ! خطارو یادم رفته بود بزارم .خطایی که میگیره این است


byte[][1]:the size property has an invalide size of 0

hassan razavi
یک شنبه 09 دی 1386, 18:09 عصر
مقدار برگشتی فیلد Image تون خالیه.

amir.khanlari
دوشنبه 10 دی 1386, 09:57 صبح
مقدار برگشتی فیلد Image تون خالیه.
خیر . در بانکم مقدار دارد .

hassan razavi
دوشنبه 10 دی 1386, 10:02 صبح
کدتون رو Trace کنید در Debug ، مطمئن بشید که آرایه b رو پر میکنه .

amir.khanlari
دوشنبه 10 دی 1386, 10:06 صبح
کدتون رو Trace کنید در Debug ، مطمئن بشید که آرایه b رو پر میکنه .
لطفا بیشتر توضیح دهید .ممنون

sinpin
دوشنبه 10 دی 1386, 10:38 صبح
لطفا بیشتر توضیح دهید .ممنون

در منوی debug گزینه های Step Into وStep Over
یا اینکه روی خطوطی که ممکنه ایجاد خطا کنه یه breakpoint بزارید و بعد برنامه تون رو اجرا کنید.

omid_pc
دوشنبه 10 دی 1386, 10:41 صبح
مقدار برگشتی فیلد Image تون خالیه.
محتواش خالیه چک کنید.....

amir.khanlari
دوشنبه 10 دی 1386, 10:52 صبح
منظورتون چیه که مقدار نداره من دو تا عکس با این شماره آلبوم وارد بانکم کردم

omid_pc
دوشنبه 10 دی 1386, 10:56 صبح
شما کدتون رو trace کنید و تو پنجره watch محتوای متغیر رو چک کنید بعد جوابو بدید...

amir.khanlari
دوشنبه 10 دی 1386, 11:46 صبح
در پنجره watch هیچی نیست . هنگامی که دکمه مورد نظر برای اجرای این پروسیجر را میزنم در پنجره output این پیغام ظاهر میشه
A first chance exception of type 'System.InvalidOperationException' occurred in System.Data.dll

sinpin
دوشنبه 10 دی 1386, 12:17 عصر
در پنجره watch هیچی نیست . هنگامی که دکمه مورد نظر برای اجرای این پروسیجر را میزنم در پنجره output این پیغام ظاهر میشه
A first chance exception of type 'System.InvalidOperationException' occurred in System.Data.dll

در پنجره watch (و در ستون Name) شما باید بگید که چی رو میخواین مشاهده کنید.

amir.khanlari
سه شنبه 11 دی 1386, 20:31 عصر
دوستان عزیز این مشکل حل شد .اما یک سوال دیگه دارم چه طور می شه از یک پروسیجر چند رکورد را خواند مثلا در این مورد چند تا عکس را از خروجی گرفت من پروسیجر مورد استفاده را در زیر اوردم .اگه میشه به این سوال هم پاسخ بدید .ممنون
use picturealbum
go
create proc selectpicture (@al_id int,@picfile image output,@pic_name nvarchar(50) output,@pic_type nchar(10) output,
@pic_keyword nvarchar(200) output,@pic_description nvarchar(300) output,@pic_date datetime output)
as
begin
select @picfile=(select pic_file from pictureview where al_id=@al_id and pic_alid=@al_id)
select @pic_name=(select pic_name from pictureview where al_id=@al_id and pic_alid=@al_id)
select @pic_type=(select pic_typefile from pictureview where al_id=@al_id and pic_alid=@al_id)
select @pic_keyword=(select pic_keyword from pictureview where al_id=@al_id and pic_alid=@al_id)
select @pic_description=(select pic_description from pictureview where al_id=@al_id and pic_alid=@al_id)
select @pic_date=(select pic_date from pictureivew where al_id=@al_id and pic_alid=@al_id)
return
end