PDA

View Full Version : سوال: چندتا سوال راجع به نوع و نحوه ایجاد دیتابیس



lida2010
جمعه 13 تیر 1393, 10:11 صبح
چندتا سوال راجع به نوع و نحوه ایجاد دیتابیس(لطفا کمک کنید!)
سلام
چند تا سوال راجع به دیتا بیس داشتم ممنون میشم پاسخ بدید:
1- بهترین جایگزین برای sqlserver در یه برنامه کوچیک(مثل دیکشنری )چی میتونه باشه؟
2-اگه با sqlexpress هم کار بشه باید رو سیستم مشتری نصب باشه؟
3-من یه برنامه با sqlexpress نوشتم ولی توی سیستم مشتری اذیت میکنه !! اونجا دیتابیسو نمیشناسه! اینم ;connectionstring:


<connectionStrings>
<add name="dictionry_DataEntities" connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=.\sqlexpress;AttachDbFilename=|DataDirector y|\dictionry_Data.mdf;Integrated Security=True;User Instance=True;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />
</connectionStrings>

گاهی اوقات روسیستم مشتری Source=.\sqlexpress رو به Source=. تغییر میدم درست میشه! و گاهی برعکس!
مشکل کجا میتونه باشه؟؟

CsharpNevisi
جمعه 13 تیر 1393, 12:05 عصر
خب چرا از اکسس استفاده نمیکنی ؟؟؟

lida2010
جمعه 13 تیر 1393, 20:39 عصر
چون بعدا میخام گسترشش بدم.و کلا پروژه م با sql بود
حالا میشه sql رو به اکسس تبدیل کرد؟
اگه اکسس کنم باید رو سیستم مشتری حتما اکسس نصب باشه؟؟

plus
شنبه 14 تیر 1393, 04:38 صبح
ًُُSQL Server برای دیکشنری؟!! از SQLite، XML و یا حداقل SQL Server Compact استفاده کنید.

barnamenevisforme
شنبه 14 تیر 1393, 06:26 صبح
گاهی اوقات روسیستم مشتری Source=.\sqlexpress رو به Source=. تغییر میدم درست میشه! و گاهی برعکس!
مشکل کجا میتونه باشه؟؟
اول اینکه پیشنهاد دوستان رو مد نظر قرار بدید.
ولی در مورد این موضوع خاص ممکنه وقتی .=source کار رو درست میکنه،نسخه ای از sql server به غیر از sql express روی اون سیستم run باشه و در عوض sql express هنوز سرویسش start نخورده
ولی در کل connection string از نوع attachdbfilename مورد مناسبی برای این کار به نظر نمیرسه چرا که از خصوصیت ویژه sql express یا server که محافظت لحظه ای از database هست استفاده نمیکنه.

ali_habibi1384
شنبه 14 تیر 1393, 08:15 صبح
منظورتون از گاهی اوقات چیه؟ برنامه وقتی 1بار درست اجرا میشه دفعات بعد هم قطعا درسته ! مگه میشه برنامه مثلا امروز اجرا بشه و فردا نشه و بعد بری کانکشن رو تغییر بدی؟؟؟! قطعا مشکل جای دیگه هست. ممکنه وقتی برنامه رو ران میکنی هنوز سرویس اس کیو ال استارت نشده و یا شخص ثالثی تنظیمات لس کیو ال شما رو بهم ریخته باشه، مثلا تغییر یوز ویندوز که اجازه دسترسی رو به فایل دیتا بیس شما نمیده.
اگه مشکل با تعویض ویندوز بوجود میاد که داستان چیز دیگریست

CsharpNevisi
شنبه 14 تیر 1393, 13:18 عصر
چون بعدا میخام گسترشش بدم.و کلا پروژه م با sql بود
حالا میشه sql رو به اکسس تبدیل کرد؟
اگه اکسس کنم باید رو سیستم مشتری حتما اکسس نصب باشه؟؟

اره ... با کوئری بانک اکسستو کافیگور کن بعدش برای اجرا هم AccessDatabaseEngine نصب کنی کافیه

lida2010
سه شنبه 17 تیر 1393, 15:11 عصر
ًُُSQL Server برای دیکشنری؟!! از SQLite، XML و یا حداقل SQL Server Compact استفاده کنید.

با sqlite هم انجام دادم مشکل بیشتر میشه!! آموزش راجع بهش هم کمه. dll هارو کپی نمیکنه local=true هم کردم ولی نشد!
تنظیم connection string اون هم جایی خوندم چیزایی رو باید دستی اضافه کنی!!

lida2010
سه شنبه 17 تیر 1393, 15:13 عصر
اول اینکه پیشنهاد دوستان رو مد نظر قرار بدید.
ولی در مورد این موضوع خاص ممکنه وقتی .=source کار رو درست میکنه،نسخه ای از sql server به غیر از sql express روی اون سیستم run باشه و در عوض sql express هنوز سرویسش start نخورده
ولی در کل connection string از نوع attachdbfilename مورد مناسبی برای این کار به نظر نمیرسه چرا که از خصوصیت ویژه sql express یا server که محافظت لحظه ای از database هست استفاده نمیکنه.

من زیاد با این اصطلاحات دیتا بیس آشنا نیستم خوب attach نباشه چی میتونه باشه؟؟

aghayex
سه شنبه 17 تیر 1393, 20:22 عصر
برداشت من از صحبت هاتون اینه که شما ددچار سر درگمی در حوزه دیتابیس شدید . ببینید برای یه برنامه که هم ردیف دیکشنری هست شما باید سراغ یک نو دیتابیسی باشید که درهنگام نصب یه برنامه دیگری رو نصب نکنی و اگه هم نصب بشه یه برنامه کم حجم باشه .
که در اینجا من توصیه می کنم شما از SQLite یا SQL Server Compact یا اکسس استفاده کنید
در خصوص سرعت هم بهتون بگم من دیتابیس SQL Server Compact دیدم با 2 میلیون رکورد و راحت کار می کرد . البته شرطش اینه که دیتابیست از ساختار درستی برقرار باشه و از تکنیک های ایندکس و ... رو هم در برنامه داشته باشید

lida2010
چهارشنبه 18 تیر 1393, 18:38 عصر
برداشت من از صحبت هاتون اینه که شما ددچار سر درگمی در حوزه دیتابیس شدید . ببینید برای یه برنامه که هم ردیف دیکشنری هست شما باید سراغ یک نو دیتابیسی باشید که درهنگام نصب یه برنامه دیگری رو نصب نکنی و اگه هم نصب بشه یه برنامه کم حجم باشه .
که در اینجا من توصیه می کنم شما از SQLite یا SQL Server Compact یا اکسس استفاده کنید
در خصوص سرعت هم بهتون بگم من دیتابیس SQL Server Compact دیدم با 2 میلیون رکورد و راحت کار می کرد . البته شرطش اینه که دیتابیست از ساختار درستی برقرار باشه و از تکنیک های ایندکس و ... رو هم در برنامه داشته باشید


SQL Server Compact با Entity که مشکل نداره؟ یا با نسخه های .net framwork?
با SqLite هم درست کردم ولی نشد!!یعنی رو سیستم مشتری کانکت نمیشه!!این هم کانکشن:


<connectionStrings>
<add name="dicdbEntities"
connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;
provider=System.Data.SQLite;
provider connection string=&quot;
data source=.\dicdb.sqlite&quot;" providerName="System.Data.EntityClient"/>
</connectionStrings>


اینم تست کردم.نشد



<connectionStrings>
<add name="dicdbEntities"
connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;
provider=System.Data.SQLite;provider connection string=&quot;
data source=|DataDirectory|\dicdb.sqlite&quot;" providerName="System.Data.EntityClient"/>
</connectionStrings>

aghayex
چهارشنبه 18 تیر 1393, 21:28 عصر
دوست عزیز شما نحوه اتصال به دیتابیستون از نوع دیتابیس فیرست هست و قاعدتا نباید مشکلی داشته باشید چون خودش کانکشن استرینگ رو درست می کنه. اما اگه از روشی به غیر از مدل فیرست و دیتابیس یرست استفاده می کنید این کانکشن استرینگ غلط است