سلام دوستان کسی میتونه کارهای مختلف مربوط به بانک اطلاعاتی رو از کانکشن تا دستورات اس کیوال رو در اینجا یادمون بده ممنون میشم
سلام دوستان کسی میتونه کارهای مختلف مربوط به بانک اطلاعاتی رو از کانکشن تا دستورات اس کیوال رو در اینجا یادمون بده ممنون میشم
من هم کمک میکنم
دوستان من رو تنها نگذارید خواهش میکنم
ما هم هستیم
همین امروز شروع میکنیم
ازتون میخوام یه نام مناسب برای این تاپیک انتخاب کنید
و یا اگر نتونستید از مدیران محترم خواهشمند ام همچین کاری را انجام دهند
شاید بگویید از این نوع تاپیک در این فروم وجود دارد
ولی خوب اشکال نداره بعضی ها با هم یه چیزی را کم کم امتحان کنند و یاد بگیرند
با تشکر
(گرچه تازه دارم از امکانات این فروم استفاده میکنم، اما بااجازه پیشکسوتها)مورد اول:
کار با دستورات insert,delete ,update(لطفا دوستان کامل کنن)
برای کار با بانک اطلاعاتی در صورتی که بخواهیم کدهای sql را داخل محیط بنویسیم باید مراحل زیر طی بشه:
1- ایجاد شی اتصال .
* توضیح:
dim str as string
str="Data Source=.;Initial Catalog=tablename;Integrated Security=True"
dim con as new sqlconnction(str)
2-ایجاد متغیر رشته ای برای تعیین دستور که میشه هر کدوم از دستورات بالا(insert,update,delete) باشه.من از insert مثال میزنم.
*توضیح:
dim strcom as string
strcom="INSERT INTO tblname (filed) VALUES (value)"
3- ایجاد شی از دستور
*توضیح
dim com as new sqlcommand(strcm,con)
4-باز کردن بانک، اجرای دستور، بستن بانک
con.open()
com.ExecuteNonQuery()
con.close
آخرین ویرایش به وسیله monirprogram : شنبه 22 مرداد 1390 در 13:35 عصر
خوب منم میام تا مطلب بگذارم شما هم بیایید و شرکت کنید
برای استفاده از بانک اطلاعاتی باید اول با اون بانک ارتباط برقرار کرد که به وسیله شی connection میتونید این کار رو انجام بدید پس در زیر ما تعریفی از این شی رو داریم
شی connection :اولین مرحله در استفاده از بانک اطلاعاتی در ویبی برقراری ارتباط فیزیکی با بانک مورد نظر است که این کار وظیفه شی connection است این شی هم مانند اشیا دیگر ویبی دارای خصوصیاتی میباشد که یکی از مهمترین ان
connection string است
نکته کد نویسی بانکهای اطلاعاتی باید دقت کرد که از چه فضای نامی استفاده میکنید
انجام مرحله اتصال به بانک اس کیو ال سرور
ابتدا فضای نامیimport system.data.sqlclient
را فراخوانی کنید در بالاترین کدها این فضای نامی را بنویسید
وظیفه این فضای نامی چیست؟ این فضای نامی شامل کلیه اشیای مربوط به بانک اطلاعاتی sql server میباشد
2:یک نونه شی از کلاس sql connection ایجاد میکنیم به شکل زیر
dim cnn as new sql connection("data source=.;initial catalog=test;integrated security=true")
if cnn.state=conectionstate.closed then
cnn.open()
دیگر خصوصات این شی خصوصیت state وضعیت فعلی شی connection رامشخص میکند و دارای مقادیر ثابت زیر میباشد
1:broken :اتصال باز استاما برای استفاده صحیح باید انرا بسته و سپس باز نمود
closed اتصال بسته است
connection :اتصال در فرایند عمل است
executing :اتصال فرمانی را اجرا میکند
fetching:اتصال داده ها را بازیابی میکند
open : اتصال باز است
در این قسمت test نام بانک اطلاعاتی میباشد و قسمت integrated security=true نشانه این است که ویندوز احراز هویت کرده است
تا اینجا که فکر کنم همه چیز واضح بوده باشه؟؟
اگر سوالی هست بگید حتما تا این تاپیک بدون اشتباه باشه
data source:چیست؟؟؟؟؟؟ محل و فایل حاوی بانک اطلاعاتی
متدها:open,close
در صورتی میتوانید فرمان open را صادر کنید که وضعیت connection در حالت closed باشد
آخرین ویرایش به وسیله oliya24 : شنبه 22 مرداد 1390 در 23:36 عصر
دوستانی که من رو در این تاپیک همراهی میکنند من در موقعی که میخوام کدهای شما رو ببینم با تگهای اچ تی ام ال مواجه میشم لطفا به دو مورد توجه کنید کدهای ارسالی به این تاپیک رو از زبان برنامه نویسی کپی نکنید و دیگری اینکه کدها رو بین دو تگ vb بگذارید این امکان رو سایت داره کافی که فقط روی کلمه vb در بالای تاپیک کلیک کنید و کدهاتون رو در ما بین این تگها بنویسید و اینکه سپاسگذارم
شی دیگر که مربوطبه فمانهای sql میباشد شی data command میباشد در زیر تعریفی هم از این شی داریم
رون انجام کار این شی به این شکل است که بایستی با یک شی connection ارتباط برقرار کرده وسپس دستورات اس کیو ال رو اجرا کرد دستورات اس کیوال میتوانند update,del,insert ,..باشند
این شی هم از خصوصیاتی بهره میگیرد که به شرح زیر هستند@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
1:commandtype
2:commandtext
گفتم که این شی دستورات اس کیوال را اجرا میکند خوب دستوررررر
نوع دستوری که شی command قرار است روی بانک اجرا کند با مقداری که در خصوصیت commandtype قرار میگیرد مشخص میشود و خصوصیت commandtext حاوی دستوراتی است که قبلا نوع ان در commandtype مشخص شده است مقادیر commandtype شامل موارد زیر میباشد
مثلا یکی از مقادیر commandtype :
commandtype.text
در صورتیکه قصد دارید دستورات اس کیوال رو روی بانک اجرا کنید باید این نوع را انتخاب و سپس دستورات مورد نظرتان را بنویسید
برای ایجاد این شی در کد نویسی بعد دستورات مربوط به اتصال این کدها رو وارد کنید
به شکل میتوان این شی رو ساخت که این روش که خدمت دوستانم عرض میکنم بهترین روش است چون امکان ارتباط با شی connection , کدهای sql مورد نظر فراهم است
dim dcom as new sqlcommand
dcom.connection=cnn
dcom.commandtype=commandtype.text
dcom.commandtext="select * from tblfdate"
همه چیز فکر کنم مشخص باشه اگر سوالی هست بپرسید دوستانم
نوعی روش در کد نویسی هست موسوم به برنامه نویسی پارامتری که بیشتر برنامه نویسان حرفه ای مندیدم از این روش در برنامه هاشون استفاده میکنند
که روش این کار رو در زیر متذکر میشم :استفاده از پارامترها در کد نویسی:
dcom.parameters.add("name parameters" ,type parameter)
برای استفاده از پارامترها باید علامت @ را قبل از نام پارامتر متذکر شوید جزع واجباته فراموش نشود
به مثال زیر توجه کنید
dcom.parameters.add("name",sqldatatype.nvarchar)
dcom.parameters.add("name").value="benyamin"
در کد بالا ابتدا پارامتر نام را در دستورات استفاده کردموبعد به ان مقدار دلخواه اسم بنیامین رو دادم این رو بش میگن ردوبدل پارامتر
متد execute non query
یکی از فرامین درون command text را بر روی بانک اطلاعاتی اعمال میکند
جهت اجرای این متد باید شی connection مرتبط با ان باز باشد
اینم از برنامه نویسی پارامتری بعدها روشهای برتری رو اموزش میدم
دوستان همکاری کنید
یه جمع بندی میکنم کاری که تا به حال انجام دادم و بعد به سراغ تاپیک بعدی میرم
1:ایجاد شی کانکشنومقدار دهی به ان
2:ایجاد شی دیتا کامندوارتباط با شی کانکشن ونوشتن دستورات درون ان
در بخش اخر هم باید این کد را بنویسیدdcom.execute non query
این دستور دستورات اس کیو ال رو به اجرا در میاورد
یاد گرفتیم برای دستوراتی مثل update,insert,del از چه متدی استفاده کنیم حال میخواهم متد دیگری را معرفی کنم و قبل از ان باید بگم دقیقا چه کاربردی داره در برخی از برنامه ها گاهی مجبوریم که مثلا بزرکترین یا کوچکترین تاریخ را بدست اوریم و یا بعضا پیش میاد که بخواهیم میانگین نمرات یک دانشجو رو حساب کنیم خوب بااستفاده از توابع تراکمی اس کیوال این کارها شدنی است و برم سراغ متدی که گفتم
متد :executescalar()
در مواقعی که در بالا متذکر شدم که ما فقط و فقط یک خروجی داریم باید از این متد استفاده کنیم توابعی چون sum,avg,max,min,count,avg,........................ .........
میرم سراغ یک شی دیگر در رابطه با بانک اطلاعاتی:
شی sqldatereader:کارش چیه؟؟؟؟؟؟؟؟؟به کمک این شی میتوان تک تک رکوردهای یک جدول رو بدست اورد و البته این شی را شما فقط از طریق کد نویسی میتوانید بسازید و فضای نامی هم همون system.data.sqlclient hsj
و نیاز به هیچ فضای نام دیگری نیست
اگر یه روزی خواستید از این شی استفاده کنید طریقه استفادش به این صورته
dim dr as sqldatareader
dr=dcom.executereader
این شی با متد executereader کار میکند
دوستان کمک نمیکنید یه لطفی بکنید و من رو در این تاپیک تنها نگذارید
زکات علم نشر ان است
دوستان خواهشمندم من رو تنها نگذارید
شما هم مطلب بگذارید
شی دیگر که باید براتون درموردش بحث کنم شی dataADAPTER است کارش چیه؟؟؟؟؟؟؟؟؟این شی به مانند یک پل اتصال دهنده بین شی کانکشن و دیتا ست است اگر بخوا م بحث رو در مورد این شی کوتاه کنم میتونم بگم که این بعد از برقراری شی کانکشن با بانک فراهم شد شی DATAadapter اطلاعات جداولوداده های درون ان و و همچنین ارتباط میان جدولها رابه شی دیتا ست منتقل میکند
دستررسی به داده ها و تغیرات انه توسط اشیا دیتا کامند انجام میشود و برای این منظور از چهار شی دیتا کامند در شی دیتا اداپتر استفاده میکنیم
دوستان اگر من اینجا مطلبی میگذارم برای یادگیری خودم و شما هست نه بیشتر توقعی هم از کسی ندارم به جز اینکه شما هم من رو یاری کنید اگر من 1 مطلب بگذارم و شما هم یه مطلب دیگه کلی دانش میتونیم با کمک هم کسب کیم
پس شما هم مطلب بگذارید
متشکرم
دستان در مورد برنامه نویسی پارامتری واستون بگم این نوع بر نامه نویسی به به نرم افزار سرعت فوقالعده ای میده مثلا من امروز پیش یکی از دوستانم بودم که از این شیوه برنامه نویسی در یکی از برنامه هاش استفاده کرده بود شاید حدود 7700 رکرود که البته بیشتر هم بود رو در یه چشم به هم زدن نمایش داد پس یکی از مزایای بر نامه نویسی پارامتری سرعت انجام روند کاری نرم افزار است
ادامه مطلب در مورد شی dataADAPTER
در واقع یک دیتا اداپتور چیزی نیست جز مجموعهای از چند شی command که روی پایگاه داده مقصد اجرا میشوند این شی دارای 4 خاصیت برای انجام 4عمل اصلی روی پایگاه داده دارد
insertcommand:یک شی COMMAND برای درج رکورد جدید
UPDATECOMMAND:یک شی COMMAND برای به روز در اوردن رکوردهای موجود
DELETECOMMAND: یک شی COMMAND برای حذف رکوردهای موجود
SELECTCOMMAND:یک شی COMMAND برای بازیابی رکوردهای دیتابیس
هر کدام از این خاصیتها دارای شی کانکشن میباشد و کلکسیون PARAMETERS وابسته به خود هستند که میتوان از انها برای تعیین اتصال به پایگاه داده وپارامترهای پرس و جو استفاده کرد
خوب بریم سراغ کد نویسی @@@@@@@@
برای ایجاد یک نمونه از این شی از کد زیر استفاده کنیدDIM DA AS NEW SQLDATAadapter
جهت مقدار دهی به خصوصیات SELCOMMAND,... به این شکل استفاده کنید
مقدار دهی به این شی الگوی تمام مقداردهی ها به یک شکل است پس من در اینجا فقط یک الگو رو میگذارم
SQLDATAdapter.selectcommand=newsqlcommand("select * from tblfdate",cnn)
و برای ایجاد پارامتر ها در این شی از کد زیر الگو برداری کنید
sqldataadapter.selectcommand.parameters.add("name" ,sqldatatype.nvarchar)
و برای مقدار دهی به پارامتر از این کد الگو بر دارید
sqldataadapter.selectcommand.parameters("name").va lue=benyamin
شی دیگری که بسیار مهم است و از ان برای نمایش دادهای موجود در جداول بکارمیرود نام این شی هست dataGRID
برای کار با این شی خصوصیت دیتا سورس رو با دیتاست برابر کنید و جهت نمایش داده ها از متد FILL استفاده کنید
سلام
در خصوص Command های DataAdapter میخواستم بگم که یک شی به نام SqlCommandBuilder هست که یک dataAdapter به عنوان پارامتر میگیره و کامندهای اون دیتا ادپتر را به صورت اتومات میسازه :)
هی ما بتون میگیم مطلب بگذارید هی بی توجهی کنید دوستان خود من تا به حال کلی چیز یاد گرفتم که تو این 2 سال گذشته نتونسته بودم یاد بگیرم ای کاش زودتر این تاپیک رو میزدم شما هم مطلب بگذارید ضرر نداره
کلاس BINDINGSOURCE:خیلی جالبه پس دقت کنید@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@
این کلاس تمامی خواص ومتدهای مورد نیاز برای کار با دیتاست رو داره مانند MOVENEXT,MOVEFIRST,...متدهایی برای مرتب کردن رکوردهای منترل دیتاگرید بر اساس فیلد دلخواه مانند SORT خاصیتهایی برای فیلتر کردن رکوردها یا پیدا کردن رکورد خاص برای دکمه های >>اولین رکورد و > رکورد قبل و عکس این 2 و برم سراغ کد نویسی تا دیر نشده
برای رفتن به رکورد بعد از این کد استفاده کنید @@@@@@@
PRODUCTSBINDINGSOURCE.MOVENEXT()
این کد رو بر روی یک دکمه بنویسید فراموش نشود که در رویداد کلیک هم بنویسید
فعلا حالشو ببرید تا برم سراغ کد بعدی
خاصیت FILLTERکلاس BINDINGSOURCE در واقع بخش WHERE یک پرس و جوی اس کیوال است در کد زیر یک دکمه فیلتر را میبینید که محصولات را بر اساس نام انها فیلتر میکند پس این بار هم یه دکمه بسازید و مدر ریداد کلیک ان این کد را بنویسید
DIM FILLTER AS STRING
FILLTER=INPUTBOX("ENTER PRODUCT NAME")
PRODUCTSBINDINGSOURCE.FILLTER=PRODUCTNAME LIKE'%"&FILTER.TRIM&"%"
اینم از این
حال دکمه FIND نیز از متدهای POSITION کلاس BINDING DOURCE برای پیدا کردن اندیس رکورد مورد نظر و رفتن به ان رکورد استفاده میشود
کد این قسمت هم در یه دکمه بنویسید و همان رویداد
DIM SEARCH AS STRING
SEARCH=INPUTBOX("ENTER PRODUCT NAME")
DIM INDEX AS INTEGER=PRODUCTSBINDINGSOURCE.FIND("PRODUCTNAME",S EARCH)
PRODUCTSBINDINGSOURCE.POSITION=INDEX
اینم از این کد
حالا این متد رو هم بگم که یه بحث دیگر رو شروع کنم
برای تعیین تعداد رکوردهای دیتاست از متد COUNT کمک میگیریم و برای گرفتن رکورد فعلی از متد CURRENT استفاده میکنیم به این نحو
CTYPE(PRODUCTSBINDINGSOURCE.CURRENT, DATAROWVEIW).ROW
اگر مطلبی دارید بگذارید لطفا خوشحال میشیم دوست عزیز
ادامه کار با شی BINDINGSOURCE حال برای تغییر راده ها در دیتاست کد مینویسیم
ایجاد یک ردیف جدید
NAME BINDINGSOURCE.ADDNEW()
جهت حذف یک ردیف از کد زیر استفاده میکنیم
NAMEBINDINGSOURCE.REMOVAT(1)
عدد 1 شماره ردیفی است که باید پاک شود
فراموش نکنید
اشیا DATA AWARE :این نوع اشیا با بانک اطلاعاتی موجود در دیتاست ارتباط برقرار کرده و منجر به نمایش و ویرایش داده ها میشود میتوان گفت تمامی اشیا ویژوال بیسیک از این موضوع پیروی میکنند مثل شی TEXTBOX
حال به برسی کد ارتباط تکست باکس با BINDINGSOURCE میپردازیم از طریق کدنویسی
TEXTBOX1.DATABINDINGS.ADD("TEXT",BINDINGSOURCE1,"N AME")
تحلیل کد:خصوصیت TEXTکنترل تکس باکس با فیلد NAME از BINDINGSOURCE ارتباط برقرار کرد
مثل اینکه قراره این تاپیک رو فقط من رهبری کنم ؟!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
روم سیاه دیگه مطالبم داره تمام میشه بابا حرفه ای ها پس بیاید و به داد من برسید
روش پروسیجر نویسی هم میگم چون خیلی بدرد میخوره همون پاسکاری پارامترهاست و..
به نظر من وصل شدن به بانک اطلاعاتی با استفاده DateSet و استخراج داده ها با استفاده از LINQ بهترین و راحت ترین و کم کد ترین باشه !!!
فقط کافیه از منوی project گزینه Add New item را انتخاب کنیم سپس DataSet را اضافه کنیم
سپس از splution Explorer (سمت راست بالا) Dataset 1 رو باز کنیم و از Server Explorer جدول ها یی که می خواهیم را داخل Dataset 1 دراگ کنیم(مثلا جدول Personal)
حالا می خواهیم اطلاعات جدول personal را در DataGridView1 نمایش دهیم
در یک رویداد می نویسیم
Dim PersonalTa As New DataSet1TableAdapters.PersonalTableAdapter
Dim PersonalT As New DataSet1.PersonalDataTable
personalTa.Fill(PersonalT)
Dim U = From I In SickT Select New With {.name = I.Name, .Address = I.Address, .phone1 = I.phone1}
DataGridView1.DataSource = U.ToList
بسیار عالی بود bia2joker جان
میشه لطف کنی بگی کدوم قسمت این کد هایی که گفتی مربوط به LINQ هست ؟
ممنون میشم
برای اینکه داده را در بانک اطلاعاتی (مثلا جدول personal ) ثبت کنید فقط کافیه بنویسیم ...
PersonalTa.insert(Id,Str_name,Str_Address,Str_Phon e1)
توجه کنید که حتما از PersonalTa استفاده کنید نه از PersonalT
پس از ثبت برای مشاهده اطلاعات ثبت شده دوباره از دستور LINQ پست قبل استفاده کنید و Datagridview1 را به جدول وصل کنید
برای Update هم بهتره که از Store procedures استفاده کنید که در ادامه آن را توضیح می دم
آخرین ویرایش به وسیله bia2joker : سه شنبه 25 مرداد 1390 در 15:56 عصر
دوستان کسی مطلبی در مورد کنترل bindingnavigator نداره بگذاره ممنون میشم
وقتی کد که منحصر به فرده و از نوع identity هم نمیخوایم تعریفش کنیم باید این امکان باشه که قبل از ثبت چک بشه و اگه کد تکراری بود خطا بده و از ثبت جلوگیری بشه
این کدش در دکمه ی ثبت بنویسید
ad.SelectCommand.CommandText = "select id from tbl 1 where id=" + txtid.Text + ""
Dim dr As SqlClient.SqlDataReader
ad.SelectCommand.Connection.Open()
dr = ad.SelectCommand.ExecuteReader
If dr.Read() Then
MsgBox("کد تکراری است", MsgBoxStyle.OkOnly + MsgBoxStyle.Critical + 0, "خطا در ذخیره اطلاعات")
ad.SelectCommand.Connection.Close()
Else
عملیات مربوط به ثبت
سلام دوست عزیز
در ادرس زیر نمایش اطلاعات از طریق کدنویسی توضیح داده
http://howprg.blogfa.com/cat-5.aspx