پی سی سیتی

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

دانه کولانه 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:08 AM برپایه ساعت جهانی (GMT - گرینویچ) +3.5 می باشد.

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