PDA

View Full Version : سوال در رابطه با conn ection string



teralone
پنج شنبه 03 فروردین 1391, 12:24 عصر
سلام دوستان
ببخشید یه سوال دارم اگه امکان داره راهنماییم کنید توی سایت جستجو کردم اما چیزی دستگیرم نشد
من تازه دارم vb.net یاد میگیرم
خواستم برای شروع یه دیتابیس بسازم برای login فرم دیتابیس رو ساختم اما یه مشکل داره
توی connection string مگه نباید ادرس دیتابیس رو بدیم ؟
من اینجوری نوشتم میشه راهنمایی کلی کنید هم connection string و هم دستورات set کردن اطلاعات و خوندن از روی جدول توی دیتابیس

Dim cn As SqlClient.SqlConnection
Dim comm As SqlClient.SqlCommand
Dim sql As String
cn.ConnectionString = "server=(local);user id=sa;Password=;database=Master;"
cn.Open()
comm.Connection = cn
sql = "CREATE TABLE login(Name nchar(50),pass nchar(50))"
comm.CommandText = sql
comm.ExecuteNonQuery()

راستی ادرس دیتابیس رو چجوری باید بنویسم تا توی کامپیوترهای دیگه ام به مشکل نخوره ؟
ممنون می شم

swallow.pa
پنج شنبه 03 فروردین 1391, 12:37 عصر
اگه می خوای توی کامپیوترهای دیگه فقط از انجین sql server استفاده کنی از این کد استفاده کن خوبه


Data Source=.;AttachDbFilename=|DataDirectory|\DataBase .mdf;Integrated Security=True

یکسری هم به این سایت بزن بد نیست
www.connectionstrings.com/ (http://barnamenevis.org/www.connectionstrings.com/)

ROSTAM2
پنج شنبه 03 فروردین 1391, 12:37 عصر
سلام اگه نمی خوای برنامه تحت شبکه بسازی از Local Database استفاده کن
می تونم بپرسم شما چرا تمام کد های Connection و ... رو در قسمت دستورات قید می کنید؟ آیا روش شما برای ارتباط با منبع اطلاعاتی اینطوره؟
در ضمن زمانی که Local Database می سازید با آدرس اون مشکل پیدا نمی کنید

teralone
پنج شنبه 03 فروردین 1391, 12:44 عصر
در جواب دوست عزیزم rostam2 وقتی متغیرهای سیکیوال رو می خوام تو قسمت جنرال فرم بنویسم خطا می ده و توی قسمت فرم مثلا اگه cn رو تایپ می کنم می گه تعریف نشده !
میشه دستور رو اصلاح کنید من هنوز گیرم که اگه یه دیتابیس بسازم کجا باید بهش آدرس دیتابیس رو بدم تا بتونم روش کار انجام بدم

ROSTAM2
پنج شنبه 03 فروردین 1391, 12:57 عصر
این روش خود ش کانکشن استرینگ رو بصورت خودکار درون settings می سازه که برای ویرایش می تونی به اونجا مراجعه کنی
منوی Project -->Properties --> Settings
ایجاد Local Database
راست کلیک روی آیتم نام پروژه درون Soiution Explorer
منوی Add --> New Item
از پنجره باز شده آیتم Local Database رو انتخاب کن با ساخت DataSet خودکار هم موافقت کن
این کار باعث می شه منبع اطلاعاتی در زیر مجموعه برنامه ساخته بشه و شما تنها نیاز به آوردن اشیاء مرتبط با منبع اطلاعات تو برنامه ، نوشتن تابع برای اون و استفاده از اون توابع دارید سوالی داشتی بپرس
در ضمن اشیاء مرتبط با منبع اطلاعات در ToolBox نوار ابزار ایجاد می شه اگه نبود یک بار Build کن

teralone
پنج شنبه 03 فروردین 1391, 13:10 عصر
ممنون داداش گلم
توی قسمت settings ادرس به صورت Data Source=|DataDirectory|\Database1.sdf نوشته شده
می شه خط مربوط به connection string رو برام بنویسی
اگه زحمتت نمی شه یکی از دستورات درج یا حذف .. رو برام بنویس تا از روی اونا بقیشو درست کنم

ROSTAM2
پنج شنبه 03 فروردین 1391, 13:36 عصر
تو این روش نیاز به نوشتن این جور کدی نداری
اگه پروژه رو یک بار Build کنی اشیاء مرتبط با منبع اطلاعات درون toolbox ساخته می شه که در یک Tab بهمراه نام پروژه ای که ساختی وجود داره
اولین کاری که باید بکنی انتخاب فرمیه که می خوای ازش استفاده کنی بعد انتخاب Dataset هست که با نام جدول ساخته شده در ابتدا هست مثل : CustomersDataSet
اون Dataset رو وارد فرم کن روی اون کلیک کن از فلش سمت راستش گزینه Edit in Dataset Designer رو کلیک کن تا وارد پنجره ویرایش dataset بشی
اگه اولین بار باشه خالیه برای اضافه کردن جدول از پنجره Server Explorer یک جدول از یک منبع اطلاعاتی با درگ کردن Drag and Drop وارد پنجره ویرایش dataset کن
حالا می تونی با راست کلیک بر روی TabelAdapter که اول نام اون با نام جدول یکی است و کلیک روی گزینه Add Query
یک تابع بسازی مثل Insert , Delete, Clear, یا توابع جستجو Fill
برای اینکه بتونی از TableAdapter استفاده کنی یکبار دیگه برنامه رو Build کن تا TableAdapter توی Toolbox ساحته بشه بعد وارد فرم کن و از اون استفاده کن
اگه خواستی می تونی از همین اشیا درون فرمهای دیگه هم استفاده کنی

teralone
پنج شنبه 03 فروردین 1391, 13:55 عصر
این که گیچ کننده تر شد داداش

من تازه واردم یکم انگار سخت شدا نشد ؟
Object reference not set to an instance of an object.
این ارور برای چیه ؟
میشه کد نویسیش رو برام بنویسی تا بتونم از روی اون یاد بگیرم

ROSTAM2
پنج شنبه 03 فروردین 1391, 14:51 عصر
Object reference not set to an instance of an object
این خطا برای زمانیه یک کلاس رو به یک متغیر درست ارائه ندادی
این روش نیاز به کدنویسی زیاد نداره ، شما تنها نیاز به ساخت تابع دارید و استفاده از اونها تمام سختی کا موقع ایجاد اشیاء مورد نیازه مثل TableAdapter
مثال Add Query--> Insert
بصورت صفحه به صفحه طبق نیاز آیتم مورد نظر رو برا ایجاد تابع SQL انتخاب می کنی که کد مورد نیاز بصورت پیش فرض توی اون قرار داره
مثلا برای Insert نیاز به تغییری نداری فقط مراحل رو طی کن و نامگذاری و Finish
زمانی که می خوای از تو.ابع استفاده کنی باید TableAdapter ی رو که وارد فرم کردی رو صدا بزنی
مثال CustomersTableAdapte1.InsertQuery (NameBox.Text, FamilyBox.Text,PhoneBox.Text,...) الی آخر
برا اینکه بهتر متوجه منظورم بشی این تصاویر رو دانلود کن اگه سوالی داشتی بپرس http://www.upitus.net/zua5jsvduseg

teralone
پنج شنبه 03 فروردین 1391, 15:26 عصر
داداش شرمنده ها نفهمیدم :خجالت:
2روزه دارم یه ریز کار می کنم اما نمی فهمم
امکانش هست برات یه مثال بزنی برام که توی اون مثال یه مقداری رو ست کنی توی دیتابیس ؟
شاید اینجوری متوجه بشم چجوری شده!
با کد نویسی انگار بهتر می فهمم چون کدهای سیکیوال رو بلدم تقریبا

ROSTAM2
پنج شنبه 03 فروردین 1391, 16:05 عصر
اگه پست های 5 و 7 رو کنار هم بذاری تصاویر رو هم دانلود کرده باشی، یک روش دسترسی به اطلاعات منبع اطلاعاتی یا همون پایگاه داده داری
اگه لطف کنی کد هایی رو که تا الان نوشتی ضمیمه کنی شاید بتونم بهتر کمک کنم
1. Local database رو ساختیم
2. Dataset هم ساخته شد
3. برنامه رو یک بار Build کردیم
4. Dataset رو وارد فرم کردیم
5. وارد Dataset Designer شدیم
6. جدولی رو که می خواستیم وارد DatasetDesigner کردیم
7. توابع SQL رو برا DataTableAdapter تعریف کردیم
8. یک بار دیگه برنامه رو Build کردیم
9. DataTableAdapter رو وارد فرم کردیم
حالا از DataTableAdapter توابعمون رو احضار می کنیم
اگه به اطلاعات جدول دسترسی بهتر می خوای از Dataset استفاده کن مثال: CustomersDataSet1.Customers.Item(0).CustomerName
برا Insert که توضیخ دادم اول تابع رو می سازی بعد یک کلید قرار می دی توی Event کلیک اون این کد رو می نویسی
مثال: CustomersTableAdapter1.InserQuery(NameBox.Text,Fam ilyBox.Tex)
حواست به ورودی های تابع باشه هرکدوم متن جعبه متن می گیرند پس تو این مثال به دوتا جعبه متن با نامهای NameBox و FamilyBox نیاز داره
هر کدوم از این مراحل رو متوجه نشدی بگو توضیح بدم ...................

teralone
پنج شنبه 03 فروردین 1391, 20:35 عصر
داداش اینو ببین خواستم یه ست ساده بنویسم بیشتر
از روی پروژه های دیگه بوده فقط مشکل این الان کجاس ؟

ROSTAM2
پنج شنبه 03 فروردین 1391, 20:51 عصر
کاش تمامی کدت رو کپی می کردی اونجایی که خطا می ده بهمراه خطا مشخص می کردی و ارسال می کردی با روشی که گفتم که نساختی لا اقل دقیق ببینم پروژتو کامل کنم

teralone
پنج شنبه 03 فروردین 1391, 20:57 عصر
داداش من تازه واردما روشی که شما گفتی رو نتونستم بفهمم اخه اشنایی زیادی با متدهای کار با دیتابیس ندارم
کلا همین بود دیگه !
گیرش تو قسمت CNN.OPEN هست که میگه کانکشن مقدار دهی نشده انگار
2روزه نتونستم یه ست ساده بنویسم :قهقهه:

ROSTAM2
پنج شنبه 03 فروردین 1391, 21:20 عصر
درسته به
ConnectionString هیچ مقداری ندادی درستش کن
cmm.CommandText = "???"
cnn.ConnectionString = PubStrConString
cmm.Connection = cnn

teralone
پنج شنبه 03 فروردین 1391, 21:36 عصر
آموزش کامل از اون روش داری ؟

ROSTAM2
پنج شنبه 03 فروردین 1391, 22:02 عصر
اينم آدرس تاپيك روش اضافه كردن Local Database به پروژه و بكارگيري اون (Wizard)

http://visualbasicprogramming.persianblog.ir/post/27/