سلام دوستان.من یه پروسیجر توی اس کیو ال نوشتم که وقتی اجرا میشه یه سری اطلاعات رو استخراج میکنه.حالا چطور میتونم این اطلاعات رو توی یه دیتاگرید ویو نشون بدم؟ممنون از لطفتون
مثلا اگه شما با sqlcommand کوئری رو اجرا میکنید
کدتون به این صورت در میاد
کد:
DataTable dt = new DataTable();
SqlConnection sc = new SqlConnection("server=.;databasename=db_name;truested_connection=true");
SqlCommand cmm = new SqlCommand("select * from Table", sc);
Grid1.DataSource=dt.Load(cmm.ExecuteReader());
مهندس جان دستورات رو نوشتم و اجرا کردم متاسفانه باز هم خطا میگیره اما این خطا از کدها و کامپایل نیست خطای time outمیزنه.این هم بگم که این کوئری باید اطلاعات دوجدول رو با هم مقایسه کنه که هرکدام از این جداول 6میلیون رکورد داخلش ثبت شده .حجم اطلاعات خیلی زیاده به نظرت چه راهی وجود داره ؟درواقع میخوام از نتایج این کوئری یه گزارش بسازم.ممنونم
خب شما 2 تا کار میتونی انجام بدی
1.با استفاده از خاصیت SqlConnection.ConnectionTimeout مقدار اون رو یک عدد بالا مثلا 10000 قرار بدین که بر حسب ثانیه هست
2.این Store procedure که نوشتین رو بهینه سازی کنین و همچنین به 2 یا چند SP کوچکتر تجزیش کنید
مهندس جان وقتی از دستور زیر برای تغییر تایم اوت استفاده میکنم خطای readonlyمیگیره.اگه ممکنه اصلاحش کنین.تشکر.
کد:
cnn.ConnectionTimeout = 10000;
شما میتونین از روش زیر استفاده کنید
کد:
string connStr = "Data Source=(local);Initial Catalog=AdventureWorks;Integrated Security=SSPI;Connection Timeout=30000";
یا این روش
کد:
sqlcommand.CommandTimeout = 30000;