بله. با نام dsfactor ایجاد کردم.نقل قول:
میتوانید TypedDataSet ای با پسوند دیزاین xsd.* در پروژه ایجاد کنید؟
Project->Add New Item->Data->DataSet
اینکار رو کردم و در اون مرحله ی choose a command type گزینه ی use sql statement رو انتخاب کردم. در پنجره ی بعد دکمه ی query builder رو زدم. در پنجره ی add table جدولی که قراره بعضی از فیلدهاش رو در گزارش نشون بدم رو انتخاب کردم. مثلا جدول TB_customer . بعد هم add رو زدم و پنجره رو بستم. حالا در پنجره ی query builder گزینه ی all columns رو انتخاب کردم و نهایتا ok رو زدم.(شرطی که طبق اون باید رکوردها در گزارش نشون داده بشن رو مشخص نکردم دیگه. درسته؟ باشه برا بعد؟!!) نهایتا هم finish رو کلیک کردم و یه جدول به نام TB_customerTableAdabtor ایجاد شد.نقل قول:
سپس با درگ از ServerExplorer یا با راست کلیک در نمایه طراحی و انتخاب گزینه Add->TableAdapter جدولی جدیدی در TypedDataSet تان ایجاد کنید.
اینکار رو هم انجام دادم.نقل قول:
سپس پروزه را یک کامپایل کنید.
Build->Rebuild Solution
در کدوم مرحله ی ویزارد؟ پنجره ی data که available data source ها رو در ساختارهای درختی نشون میده؟نقل قول:
بعد گزارش کریستال را اضافه کنید
Project->Add New Item->Report->Crystal Report
در ویزاردی که باز میشود همین TypedDataSet و جدولش داخلش را DataSource گزارش اعلام کنید.
قبلا create new connection رو انتخاب می کردم. حالا کدومو انتخاب کنم و کجاش این دو تا رو بهش معرفی کنم؟
من ADO .NET dataset رو انتخاب کردم و بعد ادامه ی مراحل . اما وقتی گزارش رو اجرا کردم صفحه ی ریپورتم خالی بود! کدهایی هم که داخل فرم فراخوانی کننده ی کریستال ریپورتم نوشتم اینا بود:
ضمنا زیر اون خط using... خط سبز کشید و اجراش کرد! (ببخشید که اینطور با جزئیات میگم. راستش از بس این تیکه کد اذیتم کرد درمونده شدم و میخوام حل شه دیگه)کد:var dbDs = new repset();
using (var dbDA = new System.Data.SqlClient.SqlDataAdapter("SELECT * FROM [TB_customer] WHERE ([sh]=@id);", con))
{
dbDA.SelectCommand.Parameters.Add("@id",( common .sh).ToString ());
dbDA.Fill(dbDs.TB_customer1);
}
var rep = new CrystalReport1();
rep.SetDataSource(dbDs);