ورود

View Full Version : مبتدی: مشکل در ذخیره رکورد جدید



teymoorei
سه شنبه 03 آبان 1401, 11:48 صبح
سلام

ممنون میشم کد من رو بررسی بفرمایید

هرکاری میکنم رکورد ذخیره نمیشه هیچ اروری هم نمیده


Dim con1 As New SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|anbar.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True")
con1.Open()
Dim com As New SqlCommand("INSERT INTO tblcustomer(name)Values(@name)", con1)
com.Parameters.AddWithValue("name", txtName.Text)
com.CommandType = CommandType.Text


com.ExecuteNonQuery()
con1.Close()

teymoorei
سه شنبه 03 آبان 1401, 17:30 عصر
من فایل دیتابیس رو از یه پروژه دیگه کپی کردم توی روت پروژه

یه تابع دارم به نام fill که بعد ذخیره اطلاعات رو از دیتابیس select میکنه ، همون لحظه که ذخیره میکنم رکورد جدید رو توی datagrid نمایش میده اما بعدش دوباره که برنامه رو باز میکنم رکورد رو نمیاره و خود جدول و هم که بررسی میکنم چیزی ذخیره نشده .

ممنون میشم راهنمایی بفرمایید .

ROSTAM2
سه شنبه 03 آبان 1401, 17:38 عصر
تو حالت دیباگ بصورت پیش فرض اینطوریه. توی خصوصیات باید یک خصوصیت false بشه که ما نمی دونیم دیتابیس با چ ابزاری مدیریت می شه.
برنامه رو بدون دیباگ اجرا کنی درست عمل می کنه. مثل بقیه برنامه های ویندوز بدون استفاده از دیباگر ویژوال استودیو.

teymoorei
سه شنبه 03 آبان 1401, 17:52 عصر
سلام ممنونم از توجه تون

بله تست کردم خود فایل exe رو اجرا کردم درست بود

بفرمایید چطوری میتونم این مشکل رو برطرف کنم ، ضمنا میخوام همون فایل Sql رو توی پروژه ام (ویژوال استودیو)، توی پنجره SQL Explorer هم داشته باشتم تا بتونم ویرایش کنم .

teymoorei
سه شنبه 03 آبان 1401, 18:22 عصر
وقتی میخوام به sql express از داخل ویژوال استودیو add connection کنم ارور زیر رو میده :

با این که فایلش رو پرمیشن everyone و فول کنترل دادم .

154117

ROSTAM2
سه شنبه 03 آبان 1401, 18:35 عصر
احتمالا دیتابیس ابزار مدیریت مثل Adapter نداشته باشه و همزمان با دیباگ مجدداً ایجاد میشه و برای جلوگیری از ایجاد مجدد کافی هست از سلوشن اکسپلورر خصوصیت Copy to Output Directory از دیتابیس رو Copy If Newer تعیین بشه:

154119

برای ایجاد اتصال به دیتابیس:
154118 (https://learn.microsoft.com/en-us/visualstudio/data-tools/add-new-connections?view=vs-2022)

teymoorei
سه شنبه 03 آبان 1401, 18:40 عصر
واقعا ممنونم از لطف تون دقیقا همین کار رو کردم و درست شد .

حالا بفرمایید چطوری همون فایل Sql رو توی پروژه ام (ویژوال استودیو)، توی پنجره SQL Explorer هم داشته باشتم تا بتونم ویرایش کنم

ROSTAM2
سه شنبه 03 آبان 1401, 18:40 عصر
وقتی میخوام به sql express از داخل ویژوال استودیو add connection کنم ارور زیر رو میده :

با این که فایلش رو پرمیشن everyone و فول کنترل دادم .

154117

یک احتمال اینه که زمان نصب اون حساب کاربری samen رو برای اتصال به اس.کیو.ال سرور تعریف نکرده باشی. ولی بصورت پیش فرض حساب کاربری که اس.کیو.ال سرور رو با اون نصب کردید اضافه می شه و ممکنه از حساب کاربری دیگه ای وارد شده باشید که بر می گرده به تنظیمات SQL Server

teymoorei
سه شنبه 03 آبان 1401, 18:43 عصر
راه حل چیه ؟

ROSTAM2
سه شنبه 03 آبان 1401, 18:45 عصر
چطوری همون فایل Sql رو توی پروژه ام (ویژوال استودیو)، توی پنجره SQL Explorer هم داشته باشتم تا بتونم ویرایش کنم

پست شماره 6 یک تصویر هست با نوشته Add new Connections که یک لینک هست که پاسخ سوال شماست:

برای ایجاد اتصال به دیتابیس:
https://barnamenevis.org/attachment.php?attachmentid=154118&d=1666711790 (https://learn.microsoft.com/en-us/visualstudio/data-tools/add-new-connections?view=vs-2022)

ROSTAM2
سه شنبه 03 آبان 1401, 18:48 عصر
راه حل چیه ؟
154120 (https://www.tutorialsteacher.com/sqlserver/create-new-user)

teymoorei
سه شنبه 03 آبان 1401, 18:51 عصر
واقعا ممنونم از لطفتون حل شد .:تشویق:

teymoorei
چهارشنبه 11 آبان 1401, 20:07 عصر
سلام
من هر بار باید پایگاه داده رو به پروژه اضافه کنم و copy if newer رو بزنم .
ممنون میشم راهنمایی بفرمایید

teymoorei
پنج شنبه 12 آبان 1401, 13:43 عصر
دوستان ممنون میشم راهنمایی بفرمایید .

ROSTAM2
پنج شنبه 19 آبان 1401, 11:37 صبح
سلام
من هر بار باید پایگاه داده رو به پروژه اضافه کنم و copy if newer رو بزنم .
ممنون میشم راهنمایی بفرمایید

مشخص نیست ابزار مدیریت دیتابیست چی هست و چه اتصالی داری گرچه تصویر اتصال به جدول در اس.کیو.ال سرور رو ارسال کردید. بنا رو بر این می گذاریم که یک کانکشن داشته باشید که ربطی به ذخیره دیتابیس نداره چون دیتابیس توی سرور هستش و تنها راه ارتباطش با برنامه همون کانکشن هست. و اون Copy If Newer برای دیتابیس اضافه شده به پروژه بصورت Content هست.

teymoorei
شنبه 28 آبان 1401, 10:56 صبح
ببخشید الان راه حل مشکل من چیه ؟

ROSTAM2
شنبه 28 آبان 1401, 11:17 صبح
تصاویر و کدهای مربوط به اتصال به دیتابیستون به پروژه رو ارسال کنید تا متوجه مشکل پروژه بشیم.

teymoorei
دوشنبه 30 آبان 1401, 07:05 صبح
سلام

این کانکشن منه :



Dim con As New SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=" & My.Application.Info.DirectoryPath & "\dbkarkhaneh.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True")


هر بار هم بعد لوگین کردن به ویندوز باید از Service گزینه ی Sql Express رو off و on کنم .

ضمن اینکه برای دیدن آخرین تغییرات در DataBase هر بار فایل mdf رو از پنچره Solution Explorer حذف میکنم و باز دوباره از پوشه Debug درگ میکنم به همون Solution Explorer و از Properties گزینه ی Copy to Output بر روی copy if newer قرار میدم .

فقط نکته ای که هست اینه که من فایل mdf از یه پروژه ی دیگه کپی کردم توی پروژه ی خودم ، و پرمیشن فایل رو everyone و fullcontrol قرار دادم .

teymoorei
پنج شنبه 03 آذر 1401, 20:25 عصر
ممنون میشم مشکل من رو بررسی بفرمایید

ROSTAM2
پنج شنبه 03 آذر 1401, 22:48 عصر
سلام

این کانکشن منه :



Dim con As New SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=" & My.Application.Info.DirectoryPath & "\dbkarkhaneh.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True")


هر بار هم بعد لوگین کردن به ویندوز باید از Service گزینه ی Sql Express رو off و on کنم .

ضمن اینکه برای دیدن آخرین تغییرات در DataBase هر بار فایل mdf رو از پنچره Solution Explorer حذف میکنم و باز دوباره از پوشه Debug درگ میکنم به همون Solution Explorer و از Properties گزینه ی Copy to Output بر روی copy if newer قرار میدم .

فقط نکته ای که هست اینه که من فایل mdf از یه پروژه ی دیگه کپی کردم توی پروژه ی خودم ، و پرمیشن فایل رو everyone و fullcontrol قرار دادم .

نیازی به اتچ کردن دیتابیس به اینصورت نیست. کافیه در سیستم مشتری یا کاربر (سرور) دیتابیس بار اول در SQL Server اضافه بشه و یک رشته اتصال مستقیم به دیتابیس در SQLServer داشته باشید.

مثل این تاپیک (https://barnamenevis.org/showthread.php?571878-SQL-Server-%D9%88-%D9%85%D8%AF%DB%8C%D8%B1%DB%8C%D8%AA-%D8%AF%D8%A7%D8%AF%D9%87-%D9%87%D8%A7&p=2454399&viewfull=1#post2454399)

برای کار با دیتابیس قبلا تاپیک های زیادی ایجاد شده که می تونید در بخش https://barnamenevis.org/images/misc/sticky.gifاعلان: تاپیک های مفید (https://barnamenevis.org/showthread.php?56973-%D8%AA%D8%A7%D9%BE%DB%8C%DA%A9-%D9%87%D8%A7%DB%8C-%D9%85%D9%81%DB%8C%D8%AF) اونها رو پیدا کنید.

نام تاپیک: نحوه کار با Sql Server 2008 و کد های آن در VB.Net (https://barnamenevis.org/showthread.php?430122-%D9%86%D8%AD%D9%88%D9%87-%DA%A9%D8%A7%D8%B1-%D8%A8%D8%A7-Sql-Server-2008-%D9%88-%DA%A9%D8%AF-%D9%87%D8%A7%DB%8C-%D8%A2%D9%86-%D8%AF%D8%B1-VB-Net)

teymoorei
یک شنبه 06 آذر 1401, 11:54 صبح
سلام
ممنونم از توجه تون به تاپیک من

همه مراحل بالا رو انجام دادم اما مشکل همچنان به قوت خودش باقیه ، ضمن این که الان یه مشکل دیگه هم اضاف شده اونم اینه که هر رکورد رو دوبار نشون میده توی DataGrid با این که توی دیتابیس یه بار ذخیره شده .

teymoorei
دوشنبه 07 آذر 1401, 19:35 عصر
اساتید بزرگوار ممنون میشم راهنمایی بفرمایید

teymoorei
چهارشنبه 09 آذر 1401, 19:22 عصر
این مشکل چطور حل خواهد شد ؟!!!! :متفکر::متفکر::متفکر::متفکر:: تفکر::متفکر::متفکر::متفکر::م فکر:

336699
چهارشنبه 09 آذر 1401, 23:24 عصر
با این روشی که شما در پیش گرفته اید، نه تنها مشکل حل نشده بلکه یک مشکل جدید هم اضافه شده

teymoorei
پنج شنبه 10 آذر 1401, 03:11 صبح
چه مشکلی دوست عزیز ؟

ROSTAM2
پنج شنبه 10 آذر 1401, 23:58 عصر
این مشکل چطور حل خواهد شد ؟!!!! :متفکر::متفکر::متفکر::متفکر:: تفکر::متفکر::متفکر::متفکر::م فکر:

نام تاپیک: عدم درج اطلاعات در جدول SQL (https://barnamenevis.org/showthread.php?572058-%D8%B9%D8%AF%D9%85-%D8%AF%D8%B1%D8%AC-%D8%A7%D8%B7%D9%84%D8%A7%D8%B9%D8%A7%D8%AA-%D8%AF%D8%B1-%D8%AC%D8%AF%D9%88%D9%84-SQL)

ROSTAM2
یک شنبه 20 آذر 1401, 18:40 عصر
این مشکل چطور حل خواهد شد ؟!!!! :متفکر::متفکر::متفکر::متفکر:: تفکر::متفکر::متفکر::متفکر::م فکر:

به این تاپیک سر بزنید شاید مشکل عدم ثبت اطلاعات در دیتابیس برنامه شما این مورد باشه. (https://barnamenevis.org/showthread.php?571878-SQL-Server-%D9%88-%D9%85%D8%AF%DB%8C%D8%B1%DB%8C%D8%AA-%D8%AF%D8%A7%D8%AF%D9%87-%D9%87%D8%A7&p=2454820&viewfull=1#post2454820)