PDA

View Full Version : ارسال نشدن پارامتر به به datatable



RIG000
جمعه 26 فروردین 1390, 00:42 صبح
No value given for one or more required parameters
این error

OleDbConnection connection1 = new OleDbConnection(databaseAddress);


string txt = "Select table1.id,table1.Name,table1.Family,inn.[job],inn.[year] " +
" From table1 " +
" Inner Join table2 as inn on table1.id=inn.id";
connection1.Open();
OleDbDataAdapter adapter1 = new OleDbDataAdapter(txt,connection1);
DataTable dt = new DataTable();
adapter1.Fill(dt);
connection1.Close();
CrystalReport1 cr = new CrystalReport1();
cr.SetDataSource(dt);
crystalReportViewer1.ReportSource = cr;

RIG000
جمعه 26 فروردین 1390, 00:52 صبح
adapter1.Fill(dt)
مشکل از اینه

ali.asady
جمعه 26 فروردین 1390, 03:02 صبح
دوست عزیز باتشکر از شما که دوباره کریستال ریپورت را یادم انداختی
شما اول مشخص کن کجا می خواهی پارامتر ارسال کنی به کریستال ریپورت یا به دستورات اس کیو ال
اگه به ریپورت می خواهی بفرستی باید در کریستال ریپورت توی قسمت پارامترها یک پارامتر ایجاد بعد فیلد مورد نظر را مساوی پارامتر قرار دهی و تو برنامت آن را مقدار دهی کنی
واما اگه به اس کیو ال پارامتر می خواهی بدهی من توی اسکریپت اسکیو ال شما پارامتر ندیدم اول باید اون را تو دستورات اضافه کنی بعد مثلاْ name@ بعد به OleDbDataAdapter یک OleDbcommand اضافه کنی و به آن هم یک OleDbparameter اضافه ومقدار دهی می کنی
من به شخصه ترجیح میدم از Linq استفاده کنم چون هم معماری چند لایه است هم با حاله انگار داری تو برنامت اس کیو ال می نویسی
امیدوارم که من مشکل شما رو درست متوجه شده باشم و مشکلات شما اینطوری حل بشه
التماس دعا

RIG000
جمعه 26 فروردین 1390, 06:34 صبح
دوست عزیز باتشکر از شما که دوباره کریستال ریپورت را یادم انداختی
شما اول مشخص کن کجا می خواهی پارامتر ارسال کنی به کریستال ریپورت یا به دستورات اس کیو ال
اگه به ریپورت می خواهی بفرستی باید در کریستال ریپورت توی قسمت پارامترها یک پارامتر ایجاد بعد فیلد مورد نظر را مساوی پارامتر قرار دهی و تو برنامت آن را مقدار دهی کنی
واما اگه به اس کیو ال پارامتر می خواهی بدهی من توی اسکریپت اسکیو ال شما پارامتر ندیدم اول باید اون را تو دستورات اضافه کنی بعد مثلاْ name@ بعد به OleDbDataAdapter یک OleDbcommand اضافه کنی و به آن هم یک OleDbparameter اضافه ومقدار دهی می کنی
من به شخصه ترجیح میدم از Linq استفاده کنم چون هم معماری چند لایه است هم با حاله انگار داری تو برنامت اس کیو ال می نویسی
امیدوارم که من مشکل شما رو درست متوجه شده باشم و مشکلات شما اینطوری حل بشه
التماس دعا
دوست خوبم . ببین من خیلی تلاش کردم مشکلمو حل کنم اما نشد یه جورایی خسته هم شدم راستش دیگه با راهنمایی هم به جایی نمی رسم . اگه میشه لطفا" یه نمونه یذارید یا با همین نمونه ای که گذاشتم مشکلمو حل کنید. هیچکی نتونسته منو کمک کنه . راستش دیگه موندم چیکار کنم . تو این ادرس کلا" همه چیز رو گفتم اما جوابی نشنیدم که به نتیجه برسه . http://barnamenevis.org/showthread.php?281680-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-%D9%81%DB%8C%D9%84%D8%AF-%D9%87%D8%A7%DB%8C-%D8%AF%D9%88-%D8%AC%D8%AF%D9%88%D9%84-%D8%A8%D8%B1%D8%A7%DB%8C-%D9%86%D9%85%D8%A7%DB%8C%D8%B4-%D8%AF%D8%B1-%DA%A9%D8%B1%DB%8C%D8%B3%D8%AA%D8%A7%D9%84-%D8%B1%DB%8C%D9%BE%D9%88%D8%B1%D8%AA
اما دوباره میگم . من دوتا جدول دارم و فیلد id تو هر دو جدول هست و اونها رو relation کردم . حالا میخام مشخصات یکی رو داشته بام یا اصلا" همه رو . فقط هدف اصلی اینه که طوری select کنم که فیلد های مورد نظرم رو تو کریستال نشون بدم که id تو هر دوشون یکی . مثلا" table1 فیلد هاش id=1 name =amin Family=rezayi و table2 فیلدهاش id=1 job =bikar year=1390 . امیدوارم متوجه منظورم شده باشین . لطفا" نمونه منو درستش کنید و تست بگیرید که جواب میده یا نه . خیلی ممنون میشم. راستش من هر چقدر برنامه نویسی بلد باشم این مورد رو دیگه نمی تونم انجام بدم

mmd2009
جمعه 26 فروردین 1390, 06:36 صبح
با سلام.

ببین دوست عزیز اصلا نیاز نیست دستور connection1.Open(); و connection1.Close(); رو بذاری.

RIG000
جمعه 26 فروردین 1390, 06:57 صبح
با سلام.

ببین دوست عزیز اصلا نیاز نیست دستور connection1.Open(); و connection1.Close(); رو بذاری.
راستش اون رو میدونم . اینو گذاشته بودم اولش انتهاشم بستم . حالا اومدم چواب بگیرم رو adapter.fill() ارور میده . اونها رو ورمیدارم . مشکل از adaptere

mmd2009
جمعه 26 فروردین 1390, 07:39 صبح
دوست عزیز من دیروز تو سایت iran-eng هم کد زیر رو به یکی از کاربران اونجا دادم :


SqlConnection con = new SqlConnection
("Data Source=.\\SqlExpress;Initial Catalog=SubReport;Integrated Security=True");

string tbl1 = " Select tblmain.Code,tblmain.Name,tblmain.Family,inn.[Game] " +
" From tblmain " +
" Inner Join tblInnerJoin as inn on tblmain.code=inn.code";

SqlDataAdapter dba1 = new SqlDataAdapter(tbl1, con);

DataTable dt1 = new DataTable();

dba1.Fill(dt1);

crpInnerJoin cr = new crpInnerJoin();

cr.SetDataSource(dt1);

crystalReportViewer1.ReportSource = cr;


این کد بالا کاملا درست بود چون رابطه بانک هم درست بود. اگر میشه scrip بانکتون رو هم بذارید اینجا

موفق باشید.

ali.asady
جمعه 26 فروردین 1390, 18:46 عصر
با سلام دوست گرامی
این هم یک نمونه ازاین کار با اسکیو ال 2005 چک کنید اگر سوالی داشتید پیام بدهید
قبل از هر کاری دیتا بیس رو بازیابی کنید(restore)

درضمن هنگام کار با کریستال ریپورت سعی کنید که یک دیتا ست که خود ویژوال میسازه رو به خورد
ریپورت بدهید وبعد به روش دلخواه جدول (datatable) رو پر کنید

التماس دعا

RIG000
جمعه 26 فروردین 1390, 20:21 عصر
با سلام دوست گرامی
این هم یک نمونه ازاین کار با اسکیو ال 2005 چک کنید اگر سوالی داشتید پیام بدهید
قبل از هر کاری دیتا بیس رو بازیابی کنید(restore)

درضمن هنگام کار با کریستال ریپورت سعی کنید که یک دیتا ست که خود ویژوال میسازه رو به خورد
ریپورت بدهید وبعد به روش دلخواه جدول (datatable) رو پر کنید

التماس دعا
1 دوست عزیز شما تو parametrs Filed یه datatable دارید و اون به کریستال اضافه کردید(فیلد هاشو ) اینو از کجا اوردید . این باید داخل دیتا ستی باشه که من دیتا ستی نمیبینم.
2 راستش من یا اسکیو ال زیاد کار نکردم . و نمیدونم الان چه طوری restor کنم . یعنی منظورتونو نفهمیدم اگه میشه یه توضیح بدید که از چه مسیری اینکار رو کنم .(تو بانک باید کاری انجام بدم؟)
3- یه توضیح از برنامه اگه میداد هم خیلی کمک میکرد راحت متوجه شم .البته در مورد datatable هایی که استفاده کردید . بقیه مفهومه . در ضمن reportApp ؟؟؟؟؟
هنوز اجرا نکردم برنامه رو چون باس این مشکل های بالا حل شه .ممنون

ali.asady
شنبه 27 فروردین 1390, 00:51 صبح
اول منیجر اسکیوال رو بازکن
روی دیتابیس راست کلیک کن
و بعد گزینه restore database رو انتخاب کن
بعد فایل backup رو به خوردش بده

ali.asady
شنبه 27 فروردین 1390, 00:56 صبح
نام جدول ها وفیلدها رو برات میزارم خودت بساز ومقدار دهی کن

نام جدولها table1 table2
جدول 1 فیلدها
id
name
family
جدول 2 فیلدها

id
ss
fname
کلید هر دو جدول id

ali.asady
شنبه 27 فروردین 1390, 00:59 صبح
در ضمن شما می تونید بدون دیتاست
با اسکیو ال ریدر ویا دیتا تیبل ریپورت رو مقدار دهی کنید
تابع با پارامترهای مختلف برای همین ساخته شده

RIG000
شنبه 27 فروردین 1390, 08:41 صبح
شرمنده یازم سوال می پرسم . به خدا اگه انقدر لازمم نبود مزاحم نمی شدم.
ببینید الان عکسی رو که میزارم restore اما بعد این صفحه چطوری Restor رو انجام بدم .؟ یعنی کدوم گزینه ؟ مراحل بعدیش....
و این که تو برنامه ای که ارسال کردید من فایل backup نمیبینم کجا گذاشتینش؟ اصلا database نیست تو برنامتون!!!! همه جاشو گشتم نبود . در ضمن این رو هم نمیدونستم انصافا" جالب گفتین.

در ضمن شما می تونید بدون دیتاست
با اسکیو ال ریدر ویا دیتا تیبل ریپورت رو مقدار دهی کنید
تابع با پارامترهای مختلف برای همین ساخته شده
یه سوال در مورد اینکه شما الان از په سیستمی واسه اینکار استفاده کردین؟
و دوم اینکه تو parameter Field شما یه دیتا تیبل دارید که 5 مقدار id , fname و..... داره اونو چه شکلی ساختین .؟ من فقط از راه همون دیتاست که تو دیتا تیبل داره رو بلدم . اگه میشه و وقت دارید یکم خیلی بیشتر توضیح در موردش بدین خیلی خوب میشه خیلی دوست دارم راههای دیگه رو یاد بگیرم تا اینکه بخام فقط کارم راه بیفته . مرسی دوست من. منتظرم .

68792

ali.asady
شنبه 27 فروردین 1390, 17:36 عصر
مقدار دهی های زیر رو انجام بده
to database=database1
From device
click buttom ..
Select database1.bak

enjoy

RIG000
شنبه 27 فروردین 1390, 20:20 عصر
الان database1 رو نوشتم دستی در To database بعدش select database1.bak و engoy رو از کجا اوردین؟ این تصویری که من گذاشتم رو Form divace کلیک کردم و بعد add رو زدم و دیگه نمیدونم چیکار کنم از کدوم مسیر این select database.1.bak رو انجام بدم؟
68820
http://barnamenevis.org/images/misc/pencil.png

ali.asady
شنبه 27 فروردین 1390, 20:45 عصر
دوست عزیز

منظورم این بود که از اجرای برنامه لذت ببرید

ببخشید اگه راهت رو دور کردم

ali.asady
شنبه 27 فروردین 1390, 20:49 عصر
بعد از آخرین پنجره برو به شاخه پروژه و فایلی که پسوند bak داره انتخاب کن
اگه هنگام بازیابی خطا داد برو تو options تیک overwrite رو بذار

RIG000
شنبه 27 فروردین 1390, 20:55 عصر
ممنون که کمک میکنی . اما این database1 از کجا میاد . این erorre رو داد 68825

درضمن من ندونستم شما بانکتون تو برنامه اب که ارسال کردین کجا گذاشتین . ای کاش اس کیو ال رو بیشتر بلد لودم و انقدر به مشکل نمی خوردم.

ali.asady
شنبه 27 فروردین 1390, 21:13 عصر
این هم عکس بازیابی
68827

ali.asady
شنبه 27 فروردین 1390, 21:17 عصر
68827








اگه ایمیل داری یکی ایمیل بده تا فایل دیتابیس رو برات بفرستم
چون سایت جحم دیتابیس رو قبول نمی کنه

RIG000
شنبه 27 فروردین 1390, 21:33 عصر
این ایمیل as_siahbil@ymail.com یه دنیا ممنون

ali.asady
شنبه 27 فروردین 1390, 21:40 عصر
اون خطا رو بازدن این تیک می تونی حل کنی

68829

http://barnamenevis.org/images/misc/pencil.png

RIG000
دوشنبه 29 فروردین 1390, 20:57 عصر
ali جان . من چند روزی نبودم . هنوز نتونستم جواب بگیرم!!:گریه:

RIG000
دوشنبه 29 فروردین 1390, 22:04 عصر
این ارور رو میده داداش . چیکارش کنم؟
68898

aliasghar2
دوشنبه 29 فروردین 1390, 22:19 عصر
سلام

خب من این تاپیک رو دنبال نمیکردم والان به صورت اجمالی یه بار خوندم
اون مشکل adaptor.fill احتمالا به خاطر اینه که یه table واسش تعریف نکردی اگه هنوز مشکلت اینه اینو امتحان کن
adapte.fill(ds,"table1")

RIG000
دوشنبه 29 فروردین 1390, 22:56 عصر
یعنی چی واسش table1 تعریف نکردم. اگه مشکل رو میشه حل کنید این شکلی ممنون میشم. خوب اگه لطف کنید . کد منو درست کنید بهم بدید . ممنون میشم.

aliasghar2
دوشنبه 29 فروردین 1390, 23:36 عصر
ببین من برنامتو پیدا نکردم
ولی کار سختی نیسن کافی که یه table مجازی درست کنی که از روش همون
adapte.fill(ds,"table1")
این اسم table1 همون مجازی هست لطفا اینو امتحان کن و نتیجه رو بگو

ali.asady
سه شنبه 30 فروردین 1390, 23:13 عصر
6894268943

ali.asady
سه شنبه 30 فروردین 1390, 23:14 عصر
عکس های بالا رو نگاه کن بعد فایلی رو که برات با ایمیل فرستادم attach کن