PDA

View Full Version : سوال: انقیاد کنترل ها به پایگاه داده



reza69
شنبه 15 بهمن 1390, 21:26 عصر
من وقتی می خوام کنترل های تکست باکسمو به sql وصل کنم متصل نمی کنه
82045
چرا بجای اینکه بنویسه chengeme.library_db.dbo
مینویسه library_dbconnectionstring(myseting
بعد وقتی که برنامه رو از نو مینویسم یه بار درست میشه ولی باز برمیگرده سر وضعیت اولش بعدشم موقع ورود اطلاعات به پایگاه داده اس کیو ال ارور میده
Invalid object name 'members'.

کد ورود اطلاعاتم هم اینه:

Dim constring As String = "Data Source=CHANGEME;Initial Catalog=library_DB;Integrated Security=True"
Dim objcon As New SqlClient.SqlConnection(constring)
objcon.Open()
Dim dagroup As New SqlClient.SqlDataAdapter("select * from members", objcon)
Dim dsgroup As New DataSet
dagroup.Fill(dsgroup, "library_DB")
Dim tblgroup As DataTable
tblgroup = dsgroup.Tables("library_DB")
Dim drcurrent As DataRow
drcurrent = tblgroup.NewRow

از خط 8 ارور می گیره.

shadi khanum
شنبه 15 بهمن 1390, 22:19 عصر
errorتون چیه دوست من؟

فرید نجفلو
شنبه 15 بهمن 1390, 22:33 عصر
دوست عزیز شما در سطرهای 5 و 7 به جای نام جدول نام پایگاه داده را ارسال می کنید!!
(بهتر بوداندازه فونت رو طوری تنظیم می کردین که سطر های کدتون به سهولت قابل شناسایی میشد)
من کد زیر رو بهتونپیشنهاد می کنم:


Dimconstring As String= "Data Source=CHANGEME;Initial Catalog=library_DB;IntegratedSecurity=True"

Dim drCurrent As DataRow

Dim dtGroup As New DataTable

Using objCon As New SqlClient.SqlConnection(constring)

objCon.Open()

Dim daGroup As New SqlClient.SqlDataAdapter("select* from members", objCon)

daGroup.Fill(dtGroup)

objCon.Close()

End Using

drCurrent = dtGroup.NewRow

reza69
یک شنبه 16 بهمن 1390, 13:27 عصر
errorتون چیه دوست من؟
موقع ورود اطلاعات به پایگاه داده اس کیو ال ارور میده
Invalid object name 'members'.

reza69
یک شنبه 16 بهمن 1390, 13:40 عصر
دوست عزیز شما در سطرهای 5 و 7 به جای نام جدول نام پایگاه داده را ارسال می کنید!!
(بهتر بوداندازه فونت رو طوری تنظیم می کردین که سطر های کدتون به سهولت قابل شناسایی میشد)
من کد زیر رو بهتونپیشنهاد می کنم:


Dimconstring As String= "Data Source=CHANGEME;Initial Catalog=library_DB;IntegratedSecurity=True"

Dim drCurrent As DataRow

Dim dtGroup As New DataTable

Using objCon As New SqlClient.SqlConnection(constring)

objCon.Open()

Dim daGroup As New SqlClient.SqlDataAdapter("select* from members", objCon)

daGroup.Fill(dtGroup)

objCon.Close()

End Using

drCurrent = dtGroup.NewRow

نه دوست من خط 5و7 مشگلی نداره اونجا باید اسم پایگاه داده رو بنویسی من در یه برنامه دیگه این کد رو بکار بردم و همونجا اسم پایگاه داده ام رو نوشتم کار کرده
حالا شما فعلا توضیح بدین (داخل عکس) چرا انتهای پایگاه دادم کلمه ی mysetting رو مینویسه؟ مشگل از اونجاست باید بنویسه chengeme.library_db.dbo

Hybrid
یک شنبه 16 بهمن 1390, 13:54 عصر
سلام دوست عزیز امیدوارم حالت خوب باشه.... نفهمیدم شما میخواین به صورت ویزاردی تکست باکس ها رو به پایگاه داده وصل کنین یا به صورت کد نویسی؟؟؟

reza69
یک شنبه 16 بهمن 1390, 16:36 عصر
سلام دوست عزیز امیدوارم حالت خوب باشه.... نفهمیدم شما میخواین به صورت ویزاردی تکست باکس ها رو به پایگاه داده وصل کنین یا به صورت کد نویسی؟؟؟
ویزاردی چجوریه؟
به این عکس توجه کن
82078
بعد از طریق کدنویسیی کد های insert یا update و... رو داخل دکمه هام می نویسم

Hybrid
یک شنبه 16 بهمن 1390, 16:57 عصر
این حالت اتصال به صورت ویزاردی هست یعنی شما هیچ کدی رو نمینویسین و خود ویژوال استودیو به صورت اتومات میاد فیلد مورد نظر رو به تکست باکس متصل میکنه...

بهترین راه اینه که بیای از Dataset استفاده کنین ولی من هیچ dataset رو در Solution Explorer شما نمیبینم..

reza69
یک شنبه 16 بهمن 1390, 17:10 عصر
این حالت اتصال به صورت ویزاردی هست یعنی شما هیچ کدی رو نمینویسین و خود ویژوال استودیو به صورت اتومات میاد فیلد مورد نظر رو به تکست باکس متصل میکنه...

بهترین راه اینه که بیای از Dataset استفاده کنین ولی من هیچ dataset رو در Solution Explorer شما نمیبینم..
حالا چجوری از dataset استفاده کنم بدونه کدنویسی؟ طریقه insert update delete select رو هم توسط dataset توضیح بدین ممنون.

فرید نجفلو
یک شنبه 16 بهمن 1390, 20:13 عصر
با عرض سلام مجدد

این library_dbconnectionstring(myseting) که شما گیر سه پیچ بهشدادین نه مبهمه نه ناجور در واقع ویژوال استدیو بر عکس ما که علاقه شدید به هاردکد داریم رشته اتصال به پایگاه داده شما رو در قسمت Setting برنامه شما ذخیره می کنه که بهشما امکان می ده اونو هرقت و از هرکجای برنامه خواستین ویرایش کنید (برای مثالحالتی رو فرض کنید که سرور شما Local باشه و سرور کاربر نهایی SQLEXPRESS! )

که به صورت زیر قابل دسترسه:


My.Settings.anItem




اگر واقعاً با مقادیر library_dbconnectionstring(myseting) مشکل داری (اول از قسمت Project>properties>settings چکش کن) میتونی دکمه New connection رو بزنی و دو باره رشته اتصال جیدت رو ایجاد کنیو بزاری تو یه setting جدید (کهگزینه هاش هم تو همون عکس به صورت غیر فعال معلومه) ذخیره بشه


اگر هم به گفته دوستمون از dataset استفاده کنید اونم مشکلات خودشوداره مثلا انقیاد در اون مثل مورد شما سر راست نیست

و به احتمال زیاد وقتی کارتون پیچیده تر بشه به کد نویسی احساس نیازبکنید

برای شروع کار با dataset از پنجره Add New Item گزینه dataset روانتخاب کنید بعد از solution explore همون datasetرو باز از server explorer بعد ازایجاد یک ارتباط به پایگاه داده ( در صورت عدم وجود) جداول تون را به داخل اون کشیده و ره کنید



در مورد خطوط 5و7 درسته این کد کا می کنه ولی شما سعی کنید همیشه نامجدول تون رو بدید تا اگه احیانا DataSet شما حاویچند جدول شد راحت جدول تون رو تشخیص بدین

کاش یه عکس از فهرست جداول پایگاه داده هم می زاشتین

reza69
یک شنبه 16 بهمن 1390, 20:54 عصر
ممنون یه عکس از فهرست جداول پایگاه داده
82087

reza69
یک شنبه 16 بهمن 1390, 21:06 عصر
باز ارور میده
کنترل های تکست باکس رو bind کردم و کد رو هم نوشتم ولی باز ارور میده
82088

Hybrid
یک شنبه 16 بهمن 1390, 21:12 عصر
سلام دوست عزیز امیدوارم حالت خوب باشه...

Dataset : این شی مدل و نمایشی از اطلاعات موجود در بانک رو در حافظه اصلی شبیه سازی میکند و شما میتونین اونو به صورت یک پایگاه داده ی رابطه ای که شامل چند جدول مرتبط هست در نظر بگیرید.نکته خیلی مهم اینه که Dataset از از شی Connection جدا هست و در نتیجه نمیدونه که این اطلاعات داخلش از کجا اومده امل میتونه اطلاعات بدست آموده از چند منبع مختلف رو در خودش ذخیره کنه..

نتیجه : این شی نمونه ای از ساختار و داده های بانک (موجود در حافظه ی جانبی ) را در خود (در حافظه ی اصلی) نگهداری میکند.

پس دستورات insert و update و Delete که شما گفتین اصلا فرقی نمیکنه با حالت عادی و نیازی به توضیح ندارد ( چون برای dateset وجود ندارد!)

82089

reza69
یک شنبه 16 بهمن 1390, 21:16 عصر
من فکر کنم مشگلم تو این ارور باشه نظراتتون رو بگین
82090

فرید نجفلو
یک شنبه 16 بهمن 1390, 22:17 عصر
من فکر کنم مشگلم تو این ارور باشه نظراتتون رو بگین
82090
خوب با این خطا موضوع تاپیک عوض شد!
این خطا دلایل زیادی می تونه داشته باشه:
sql server در حال اجرا نیست ( این مورد با عکسی که از پایگاه داده گذاشتین منتفی می شه)
آنتی ویروس تون برنامه رو پرونت میکنه ( باید TCP/IP در سرور فعال باشه و پورت 1433(پورت UDP برابر 1434 می باشد) باز باشه و فایر وال بلوکش نکرده باشه)
ممکنه برنامه به مجوز بیشتری نیز داره (یه بار Run as administator کنید اگه حل شد باید یه سری تغییر ات درتنظیمات برنامه بدین)
پیکر بندی سرور رو دستکاری کردین( اگه تو یه سیستم دیگه خطلا نداشته باشین این مورد قوت پیدا می کنه)

بهتره اولی فایر وال رو خاموش کنی
اگه لازم دیدی sql browser رو هم اجرا کن

اینا رو چک کن اگه باز حل نشد یا مورد دیگه ای پیش اومد مطرح کن یه فکری با دوستان به حالش بکنیم:متفکر:

reza69
یک شنبه 16 بهمن 1390, 22:49 عصر
tcp/ip رو چجوری چک کنم؟
Run as administator چجوریه؟
انتی ویروسو نگاه کردم firewallندیدم

فرید نجفلو
یک شنبه 16 بهمن 1390, 23:26 عصر
tcp/ip رو چجوری چک کنم؟
Run as administator چجوریه؟
انتی ویروسو نگاه کردم firewallندیدم

1-
TCP/IP,UDP,NamedPipeو اجرا و توقف سرویس های Sql Server و ... از مسیر زیر قبل دستریه
start>All Programs>Microsoft Sql Server 2008>SQL Server Configuration Manager

2-
طوری که از ظواهر عکساتون قابل برداشته ویندوز شما باید XP باشه که نیازی به Run As نداره اما اگه ویستا یا سون دارین رو فایل اجرایی برنامه تون ( معمولا در مسیر Debug پروه قرار داره) راست کلیک کنید گزینه مورد نظر رو می بینی

3-
اگه فایر وال اختصالی ندارین برید به کنترل پنل و در حالت کلاسیک ویو (پنل سمت چپ پنجره رو نگاه کنید) پیداش می کنین تو ویندوز 7 از Action Center استفاده کننین

یه چیزی که تو تاپییک و سوال شما ذهنمو مغول کرده اینکه من چیز مشکوکی نمیبینم و احتمال موردی خارج از این موارد باشه.:متفکر:
تا حالا برنامه تون رو رو یه سیستم دیگه امتحان کریدن؟
اگه دسترسی به کامپیوتر دیگه ای ندارین می تونین از Virtual PC ها استفاده کنید( تو این مورد یه کم تخصص دارم:چشمک:)
بازم در خدمتیم دوست عزیز

reza69
دوشنبه 17 بهمن 1390, 10:08 صبح
دوست عزیز ممنون ولی اینهایی که گفتید انجام دادم فقط رو Virtual PC ها انجام ندادم .عکس زیر هم مربوط به tcp\ip هست. نگاش کن.udpرو هم ندیدم namedbiped هم enable کردم یه پیام داد برای ری استارت کردن sqlexpress بعد ری استارت کردم ولی بعد از ران کردن پروژه باز همون ارور رو داد.یه تصویر هم از آنتی ویروسم از فایر والش برات میزارم.

82105

82106

فرید نجفلو
دوشنبه 17 بهمن 1390, 12:09 عصر
دوست عزیز ممنون ولی اینهایی که گفتید انجام دادم فقط رو Virtual PC ها انجام ندادم .عکس زیر هم مربوط به tcp\ip هست. نگاش کن.udpرو هم ندیدم namedbiped هم enable کردم یه پیام داد برای ری استارت کردن sqlexpress بعد ری استارت کردم ولی بعد از ران کردن پروژه باز همون ارور رو داد.یه تصویر هم از آنتی ویروسم از فایر والش برات میزارم.

82105

82106

تو قسمت تنظیمات که مشکلی دیده نمیشه
در مورد فایر وال هم فکر کنم قصد معرفی داشتید!چون نه فایر وال خاموشه و نه لیستی از برنامه ها و پورت های بلوکه شده یا مجوز دار مشاهده نمی شه!

به نظر من sql رو یه بار unistall کامل بکن و دو باره نصب کن و این بار گزینه default instance رو انتخاب کنی بهتره

قبل از این کار هم بهتره بری تو vs و از منوی tools و گزینه ...connect to database به دیتا بیست کانکت بشی اگه موفق شدی و لیست جداولت رو دیدی (امکان تغییر هم داری ) به sql server دست نزن چون درست کار می کنه اگه نشد باید بری دنبال sql server و تنظیمات

reza69
دوشنبه 17 بهمن 1390, 12:55 عصر
دوست من همین جور که تو عکس می بینی ارتباط قطع شده و در کادر select or enter database name چیزی وجود نداره
82112

فرید نجفلو
دوشنبه 17 بهمن 1390, 14:01 عصر
دوست من همین جور که تو عکس می بینی ارتباط قطع شده و در کادر select or enter database name چیزی وجود نداره

بله مشل هر چی هست خارج از برنامتونه
تو عکس هم معلومه شما قبلا متصل بودیدو بعدا قطع شده(سه پایگاه داده با حالت disconnect)
شما باید فکر کنید ببینید قبل از این مشکل کجا چی رو تغییر دادین یا چه برنامای رو نصب یا آپ دیت کردین
من تازگی ها با Sql server 2012 Express واسم این مشکل پیش اومد که متوجه شدم نسخه آزمایشی بوده و وقتش تموم شده
شما یه بار sql express 2008 رو که همراه خود vs هم هست نصب کنید بعد تستش کنید(مزایا رایگان،سبک، نصب سریع ) واسه اون کار اتچ که یه تاپیک واسش زدین هم بدرد می خوره و SQL Server Management Studio Express هم به صورت رایگان واسه دانلود (http://www.microsoft.com/download/en/details.aspx?id=25052) هست

reza69
دوشنبه 17 بهمن 1390, 14:05 عصر
موقعی که firewall روو خاموش کردم و داخلvs ارتباطمو refresh کردم این ارور رو میده
http://www.pic1.iran-forum.ir/images/up1/89438942416801052447.jpg

فرید نجفلو
دوشنبه 17 بهمن 1390, 22:29 عصر
دوست عزیز همانطور که گفتم یه بار sql رو عوض کنید یا حداقل یه نسخه express که دم دستتون هم هست به صورت New instance نصب کنید

reza69
دوشنبه 17 بهمن 1390, 23:17 عصر
هم sql و هم vb.net رو دوباره نصب کردم تقریبا مشگلم حل شده ولی یه ارور جدید دارم
82137

فرید نجفلو
سه شنبه 18 بهمن 1390, 02:39 صبح
طبق اون چیزی که من می بینم یا دیتا بیستون معیوبه (احتمال کمتر) و یا یه دیتا بیس دیگه با همین اسم تو این سرور دارین (بیشترین احتمال)
شما بهتره برید اون دو تافایل مربوط به دیتا بیستون(mdf,ldf) رو کپی کنینید یه جایه دیگه (اصولش اینه که در پوشه فایل اجرایی برنامتون باشه) و اگه باز نشد با SQL Server Management Studio چک کنید اگه همچین دیتابیسی رو دیدید deatech کنید(فایل هاتون رو هم می تونین rename کنین)
به به ساعتم 3 شد!:متفکر:

reza69
سه شنبه 18 بهمن 1390, 08:08 صبح
نمیدونم چرا sqlexpress ران نمیشه؟
82157

فرید نجفلو
سه شنبه 18 بهمن 1390, 14:46 عصر
همون طور که پیام می گه به Event Viewer ویندوز برید توی Applications Event خطای مربوط به Sql Server رو پیدا کنید ببینید چی نوشته
به قسمت services تو کنترل پنل هم یه سر بزنید مطمئن بشید سرویس مربوط به Sql Server غیرفعال(Disable) نباشه.

آقا رضا ما یه طرف و درست می کنیم یه جای دیگه کج می شه!شما با سیستمتون چی کار کردین؟:چشمک:

reza69
سه شنبه 18 بهمن 1390, 15:28 عصر
داخل event viewer اینو پیدا کردم
Event Type: Error
Event Source: Userenv
Event Category: None
Event ID: 1041
Date: 23-01-2011
Time: 01.22.07
User: NT AUTHORITY\SYSTEM
Computer: CHANGEME
Description:
Windows cannot query DllName registry entry for {CF7639F3-ABA2-41DB-97F2-81E2C5DBFC5D} and it will not be loaded. This is most likely caused by a faulty registration.

For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.

فرید نجفلو
سه شنبه 18 بهمن 1390, 15:48 عصر
فکر کنم باز sql server خاک به سر شد
نمی دونم شاید تو سیستمت یه چیزی نصبیدی که همه چیز و میزنه به هم!
دیگه آخه چقدر باید sql عوض کنیم!

reza69
سه شنبه 18 بهمن 1390, 20:05 عصر
آقا فرید دیگه هیچی جز ویندوز عوض کردن به ذهنم نمیرسه بقیه هم که هیچ کمکی نمی کنن ولی از کمکاتون ممنونم امیدوارم منم بتونم یروزی بهتون کمک کنم ممنون:لبخندساده:

فرید نجفلو
سه شنبه 18 بهمن 1390, 22:32 عصر
آقا فرید دیگه هیچی جز ویندوز عوض کردن به ذهنم نمیرسه بقیه هم که هیچ کمکی نمی کنن ولی از کمکاتون ممنونم امیدوارم منم بتونم یروزی بهتون کمک کنم ممنون:لبخندساده:

خواهش می کنم
آره ویندزم عوض کن شاید درست شد و همچنان در خدمتیم.