پی سی سیتی

پی سی سیتی (http://p30city.net/index.php)
-   نرم افزار - سخت افزار و بازیهای کامپیوتری (http://p30city.net/forumdisplay.php?f=120)
-   -   پرسش و پاسخ در مورد نزم افزار SQL Server (http://p30city.net/showthread.php?t=32782)

Saba_Baran90 08-02-2011 04:49 PM

پرسش و پاسخ در مورد نزم افزار SQL Server
 
سلام به همه
خودم یه سؤالایی درباره کار با SQL داشتم اما فک کردم بهتره یه تاپیک کلی بزنم که اگه کس دیگه ای هم سوالی داشت بپرسه.

اولین سوالم هم اینه که این نرم افزار روی ویندوز Seven سخت نصب می شه خودم یه بار اینکارو کردم اما ناقص نصب شد. چطور میشه درست روی ویندوز سون نصبش کرد؟
کار اضافی ای داره؟
می خوام بعدش با Visual Studio ازش استفاده کنم.
دست همتون پیش پیش درد نکنه.
:cool:

دانه کولانه 08-02-2011 06:30 PM

دنیاییه واسه خودش .
راه اول : از سون استفاده نکنید از ایکس پی استفاده کنید :p .

نه مشکلی با سون نداره .
iis نصب باشه دات نت فریم ورک نسخه های جدید هم که نصب باشه مشکلی پیش نمیاد و به خوبی نصب میشه
پیش نهاد من این هست که مثلا ویژوال استدیو 2010 رو نصب کنید که همراهش اس کیو ال سرور اکسپرس 2008 هم نصب بشه داخل محیط ویژوال استدیو میتونین کارتون رو انجام بدید .

Saba_Baran90 08-02-2011 06:58 PM

آخه اگه از سون استفاده نکنم یه کارم درست می شه 1000 تا مشکل دیگه پیدا می کنم!
ببخشیدها.................iis؟
:d:65:

دانه کولانه 08-02-2011 07:21 PM

دی وی دی ویندوزتون رو نیاز دارین برای نصب iis مگر اینکه وقتی ویندوز رو نصب کردین اینم نصب کرده باشین


Saba_Baran90 08-02-2011 10:18 PM

ممنون
راستی این iis اصلا چه هست؟

ali_zangeneh 08-05-2011 10:58 PM

سلام
iis
مخفف internet information service هستش ، برنامه های تحت وب در واقع به نوعی برنامه کاربردی client/server هستند.که در این نوع برنامه ها کاربر کامپیوتر سرویس گیرنده از برنامه وجود در کامپیوتر سرویس دهنده server استفاده میکنه.حالا این برنامه کلاینت و سرور از طریق شبکه اینترنت به همدیگه متصل شده اند.حالا کاربران با مرورگر وب کار میکنند(یعنی سرویس میگیرند).
حالا برنامه کاربردی در کامپیوتر سرور و تحت کنترل نرم افزار وب اجرا میشن،کامپیوتر سرویس دهنده میبایست وب سرور مایکرو سافت رو برای برنامه ی کاربردی در پلتفورم ASP.NET اجرا بکنه.این وب سرور همون IIS هست .حالا ما برای اجرای برنامه های asp.net در سیستم احتیاج به فعال کردن یک سرویس ویژه(در حال پیشفرض غیرفعال است) داریم که اون هم اسمش iis هستش.ولی بهتره برای کلی قابلیت های ویژه دیگه شما windows server2003 یا 2008 رو نصب کنید که امکانات خیلی بیشتری رو در اختیار شما قرار میده نصبت به ویندوز معمولی

ali_zangeneh 08-05-2011 11:04 PM

راجع به SQLSERVER که بخواین بانک اطلاعاتی تون AUTO ATTACH بشه.نباید SQL SERVER جداگانه ایی بجز پیشفرض VISUAL STUDIO نصب کنید.
این برای برنامه هایی که یا برای پروژه ها یا برای نرم افزار های بیرون استفاده میکنید خیلی مفیده.یعنی با یک فایل xml که خود ویژوال استودیو میسازه اگه از SQL SERVER خود ویژوال استودیو استفاده کنید نه دیگه مشکل CONNECTION STRING و نه مشکل ATACH فایل DATABASE رو خواهید داشت ولی درکل کار ایمنی نیست.
ولی همیشه اطلاعات خودتونو رمز کنید و داخل بانک درج کنید به جای اینکه ارتباط رمز شده به کار ببرید.
ضمنا SQL SERVER 2008 خصوصا نسخه EXPRESSS EDITION که از ادرس زیر قابل دانلوده مشکلی برای نصب روی ویندوز 7 نداره ولی بازم تکرار میکنم استفاده از SQL SERVER خارجی یعنی خارج از ویژوال استودیو یعنی دردسر

ادرس دانلود SQL Server 2008 Management Studio Express
http://filehippo.com/download_sql_server_studio/

ادرس دانلودSQL Server 2008 R2 Express

http://filehippo.com/download_sql_server_express/


maniya1 12-16-2011 10:16 AM

من فکر کردم که در این تایپیک سوال خودمو مطرح کنم
من در SQL SERVER که در پیشفرض VISUAL STUDIO2010 است بانک اطلاعاتی ایجاد کردم ولی مشکل من این است که با وجود خطا نداشتن کدها ،رکورد وارد دیتابیس نمیشه،جالب این است که من با همین کدها در برنامه تحت وب میتوانم رکورد وارد کنم ولی در برنامه تحت ویندوز نمیشه کدمو براتون میذارم

SqlConnection con = new SqlConnection();
con.ConnectionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\student .mdf;Integrated Security=True;User Instance=True";

con.Open();
SqlCommand cmd = new SqlCommand("insert into person(Name) values(@name)",con);

cmd.Parameters.Add("@name", TextBox1.Text);
cmd.ExecuteNonQuery();
پیش پیش ازتون تشکر میکنم و اگر علت را فهمیدید لطف کنید به من بگید

دانه کولانه 12-16-2011 02:12 PM

برای ارتباط با sql server در سی شارپ Attach a database file on connect to a local SQL Server Express instance
 
برای ارتباط با sql server در سی شارپ Attach a database file on connect to a local SQL Server Express instance


Connection strings for SQL Server c#



به صورت دقیق چیزی در مورد خطایی که به شما میده نگفتید فقط گفته اید که رکورد اینسرت نمیکنه که ممکنه تشخیص اشتباهی داده باشید
بهتره اول گام به گام بررسی کنید ببینید مشکل چیه
ایا کانکشن برقرار میشه ؟
بعد ببینید مثلا میتونید با دستور select رکوردهایی رو از دیتابیستون واکشی کنید ؟
اگر این دو مرحله با موفقیت انجام شد شاید بشه گفت برای دستور insert مشکل دارید


من کد شما رو تست کردم یه اشکالش اینه که student .mdf
یک تک اسپیس بین اسم فایل و فرمتش هست که با حذف اون مشکلتون حل میشه .
این به شرطی هست که شما پس از ساختن دیتابیس در داخل خود محیط ویژوال استدیو گزینه connect to database
و بعدا

Microsoft SQL Server Database File (SqlClient)

رو بزنید (ممکنه این کار رو نکرده باشید .)
(به هر حال من با اعمال این تغییرات با کد شما تونستم به دیتابیس رکورد اضافه کنم )

maniya1 12-16-2011 05:59 PM

اول تشکر میکنم به خاطره اینکه وقت گذاشتید و سوالمو خوندید و در مورد مطالبی که گفتید باید بگم که برنامه هیچ خطایی نمیده و من هم همین کد رو در برنامه تحت وب اجرا کردم و رکورد اضافه کرد ولی در برنامه تحت ویندوز اضافه نمیکنه
برقراری کانکشن رو هم با کد textBox1.Text = con.Database;
تست کردم و بعد از اجرا مسیر فایل mdf را
C:\USERS\MANIYA\DOCUMENTS\VISUAL STUDIO 2010\PROJECTS\P1\P1\BIN\DEBUG\STUDENT.MDF
که این بود در تکست باکس بهم نشون داد
دیتا سورس هم به صورت دیفالت Microsoft SQL Server Database File (SqlClient) است
ودر مورد تک اسپیس باید بگم که در کد اصلی درست بود و اینجا اشتباه شد
با کد select هم تونستم اطلاعات دیتابیس رو در Grid view بینم
نکته اینجاست که پس از اجرا با کلیک روی Buttion بدون هیچ خطایی برنامه اجرا میشه و وقتی show table data میکنم میبینم هیچ رکوردی اضافه نشده
من فکر میکنم که شاید دیتابیس رو غلط ایجاد میکنم چون بعد از Add کردن دیتابیس در
پنجره choose a database model هیچ چیزی انتخاب نمیکنم و دکمه cancle رو میزنم که نمیدونم این کارم درست هست یا نه
من در برنامه نویسی مبتدی هستم و به خاطره همین میخوام که شما لطف کنید و بهم کمک کنید

دانه کولانه 12-16-2011 06:15 PM

استفاده از دیتابیس توکار در دات نت - نحوه اتصال sql server express در سی شارپ Create a Database with SQL Server Express
 
استفاده از دیتابیس توکار در دات نت - نحوه اتصال sql server express در سی شارپ Create a Database with SQL Server Express

من هم در همه چی مبتدی هستم .

مساله اینه که من با اعمال تغییرات و چیزهایی که گفتم تونستم دقیقا با کد شما رکورد در داخل دیتابیس اضافه کنم .
شاید هم اضافه میشه برای شما اما تغییرات اعمال شده رو نمیبینید (یه رفرش بکنید دیتابیس رو )

یا برای اینکه مطمئن بشید که ایا اضافه شده یا نه برای دیتابیستون یه کلید اصلی (پرایمری کی) تعریف کنید بعد یه دیتای تکرای (با کلید تکراری ) از طریق برنامه به دیتابیس اضافه کنید که اگر عملیات اضافه شدن به درستی صورت بگیره قاعدتا باید بهتون پیغام خطا بده چون داده ی تکراری برای کلید اصلی مجاز نیست .

-------------
ببینید من این کار رو میکنم :
یه پروزه ویزوال استدیو جدید درست میکنم مثلا سی شارپ فرم اپلیکیشن .
بعد روی پروژه کلیک میکنم و add new items رو میزنم
بعد از data
گزینه
service based database رو میزنم
حالا یه دیتابیس به پروژه شما اضافه شده که solution exp سمت راست میتونید ببینیدش
حالا با کلیک برروی نام دیتابیستون از سمت چپ (server exp ) میتونید از قسمت table گزینه add new table رو بزنید و دیتابیستون رو طراحی کنید ...

بعد از طراحی کردن دیتابیستون باید

connect to database رو بزنین
از پنجره بعدی از قسمت دیتا سورس باید
Microsoft SQL Server Database File (SqlClient)
رو بزنید
بعد فایل دیتابیستون رو انتخاب کنید و برای اطمینان بیشتر حتما test connection رو بزنید
اگر اوکی داد که یعنی همه چی درسته .

و بعد کد اصلاح شده ی خودتون یعنی

کد:

SqlConnection con = new SqlConnection();
            con.ConnectionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\mydb.mdf;Database=dbname; Trusted_Connection=Yes;Integrated Security=True;User Instance=True";
            con.Open();
            SqlCommand cmd = new SqlCommand("insert into person(Name) values(@name)", con);

            cmd.Parameters.Add("@name", TextBox1.Text);
            cmd.ExecuteNonQuery();

رو وارد کنید (من اینو برای یک دکمه گذاشته ام )
که کار میکنه
منتهی من با vs 2008 کار میکنم .
(قطعا از این هم استفاده کرده اید using System.Data.SqlClient; )


maniya1 12-17-2011 09:54 AM

از راهنماییتون منتشکرم ، مشکلم با کمک شما حل شد

maniya1 01-03-2012 08:56 PM

ببخشید اینبار سوالم یه کم طولانیه
من یک برنامه دفترچه تلفن درست کردم که براش 2تا کاربر تعریف کردم و دوtabelکه یکی برای لاگین هست که اطلاعات این دو کاربر در آن است و یکی برای افرادی که شماره هاشون ثبت شده و این دو کاربر میتوانند شماره جدید وارد کنند یا حذف کنندمشکلم اینه که میخوام هر کدوم از این دو کاربر اگر شماره ای وارد کرد اسمش ثبت بشه که مثلاmaniya این شماره این آدمو وارد کرده امیدوارم منظورمو رسونده باشم
اما نمیدونم از چه روشی البته خودم کد رو طوری نوشتم که مثلا maniyaوقتی لاگین کرد اسم و فامیلش به عنوان ویرایشگر وارد جدول شماره ها بشه و برای ثبت شماره جدید کد زیر رو نوشتم
که مشکلش اینه که در دیتابیس اینطوری وارد میشه که نام ویرایشگر رو در یک سطر و اطلاعات مربوط به شماره جدید رو درسط دیگر وارد میکنه



try
{
SqlConnection con = new SqlConnection();
con.ConnectionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\TellZib a.mdf;database=tblLogin; Trusted_Connection=Yes;Integrated Security=True;User Instance=True";
con.Open();
SqlCommand cmd = new SqlCommand("insert into tblPerson(Pname,Pfamily,Ptell,Pmobile,Pdate) values(@nm,@fm,@tl,@mo,@Date)");
cmd.Parameters.Add("@nm", dataGridView1.Rows[0].Cells[1].Value);
cmd.Parameters.Add("@fm", dataGridView1.Rows[0].Cells[2].Value);
cmd.Parameters.Add("@tl", dataGridView1.Rows[0].Cells[3].Value);
cmd.Parameters.Add("@mo", dataGridView1.Rows[0].Cells[4].Value);
cmd.Parameters.Add("Date", label3.Text);
cmd.Connection = con;
cmd.ExecuteNonQuery();
}
catch (SqlException er) { MessageBox.Show(er.Message); }
SqlConnection cnn = new SqlConnection();
cnn.ConnectionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\TellZib a.mdf;database=tblLogin; Trusted_Connection=Yes;Integrated Security=True;User Instance=True";
cnn.Open();
SqlCommand cmd2 = new SqlCommand("update tblPerson set Pname=@nm , Pfamily=@fm ,Ptell=@tl , Pmobile=@mo where Pid=@id");
cmd2.Connection = cnn;
cmd2.Parameters.Add("@id", dataGridView1.Rows[0].Cells[0].Value);
cmd2.Parameters.Add("@nm", dataGridView1.Rows[0].Cells[1].Value);
cmd2.Parameters.Add("@fm", dataGridView1.Rows[0].Cells[2].Value);
cmd2.Parameters.Add("@tl", dataGridView1.Rows[0].Cells[3].Value);
cmd2.Parameters.Add("@mo", dataGridView1.Rows[0].Cells[4].Value);
cmd2.Parameters.Add("Date", label3.Text);
cmd2.Connection = cnn;
cmd2.ExecuteNonQuery();
{
}
}
بازم ببخشید طولانی شد شما فکر میکنید از چه روشی استفاده کنم؟

دانه کولانه 01-03-2012 09:36 PM

شما باید اول جدولت رو درست طراحی کنی

فرض کن جدول یوزرت اینطوره :

users(userid,username,password)

tblPerson(Pname,Pfamily,Ptell,Pmobile,Pdate,creatorUserName)

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


maniya1 01-07-2012 02:30 PM

من با ویژوال استدیو 2010 و .NET Fram work 4کار میکنم و همان طور که میدونید در این نسخه کریستال ریپروت وجود نداره و من مجبور شدم کریستال ریپورت 13 رو از اینترنت دانلود و نصب کردم اما مشکل اینجاست که کامپوننت Crystal Report Veiwer رو در Tool Box نداره حتی در قسمت Choos Item هم که رفتم دیدم این کنترل تیک خورده ولی چرا نمایش نمیده نمیدونم،لطفا منو راهنمایی کنید

maniya1 02-14-2012 09:52 AM

سلام دوستان
من برنامه ای با سی شارپ نوشتم و دیتابیس آن را در خود ویژوال ایجاد کردم ولی مشکل اینجاست که من داشتم روی برنامم کار میکردم که یهو به Error زیر برخوردم در حالی که تا قبل از آن ، برنامه مشکلی نداشت واصلا Error نمی داد به نظر شما اشکال از کجاست؟
ErrorUnable to copy file "C:\Users\Maniya\Documents\Visual Studio 2010\Projects\Suggest\Suggest \SuggestZ.mdf" to "bin\Debug\SuggestZ.mdf". The process cannot access the file 'bin\Debug\SuggestZ.mdf' because it is being used by another process

maniya1 02-21-2012 05:33 PM

سلام دوستان
من در یک برنامه سی شارپ میخوام که کاربر وقتی کلید واژه(یعنی یک کلمه از یک متن )را در تکس باکس وارد کرد وقتی دکمه جستجو را کلیک کرد متنی را که این کلمه در آن بود را نمایش دهد لطفا اگر شما راهی به ذهنتون میرسه مرا راهنمایی کنید


اکنون ساعت 05:18 AM برپایه ساعت جهانی (GMT - گرینویچ) +3.5 می باشد.

Powered by vBulletin® Version 3.8.4 Copyright , Jelsoft Enterprices مدیریت توسط کورش نعلینی
استفاده از مطالب پی سی سیتی بدون ذکر منبع هم پیگرد قانونی ندارد!! (این دیگه به انصاف خودتونه !!)
(اگر مطلبی از شما در سایت ما بدون ذکر نامتان استفاده شده مارا خبر کنید تا آنرا اصلاح کنیم)